Kot sistemski skrbnik Linuxa boste večkrat prišli v situacije, ko boste morali manipulirati in preoblikovati izhodne podatke iz različnih ukazov, da preprosto prikažete del izhodnih podatkov s filtriranjem nekaj vrstic. Ta postopek lahko imenujemo filtriranje besedila z uporabo zbirke programov Linux, znanih kot filtri.
Obstaja več pripomočkov Linux za filtriranje besedila, nekateri dobro znani filtri pa vključujejo glavo, rep, grep, tr, fmt, razvrščanje, uniq, pr ter naprednejša in zmogljivejša orodja, kot sta Awk in Sed.
Preberi več →Vse od začetka serije Awk do 12. dela v ukazni vrstici in v skriptih lupine pišemo majhne ukaze in programe Awk.
Vendar je Awk, tako kot Shell, tudi interpretiran jezik, zato lahko z vsem, po čemer smo hodili od začetka te serije, zdaj pišemo izvršljive skripte Awk.
Podobno kot pišemo lupinski skript, se skripti Awk začnejo z vrstico:
#! /path/to/awk/utility -fNa primer, v mojem sistemu se pripomoček Awk nahaja v/usr/bin/awk, zato bi skript Awk zagnal na naslednji način:
#! /usr/bin/awk -fRazlaga zgornje vrstice:
Ko pregledate vse primere Awk, ki smo jih zajeli do zdaj, že od začetka postopkov filtriranja besedila na podlagi nekaterih pogojev, je tu pristop pristopov stavkov za nadzor pretoka.
V programiranju Awk obstajajo različni stavki za nadzor pretoka, ki vključujejo:
Ko pišemo skripte lupine, v svoje skripte običajno vključimo druge manjše programe ali ukaze, kot so operacije Awk. V primeru Awk moramo najti načine, kako prenesti nekatere vrednosti iz lupine v operacije Awk.
To lahko storimo z uporabo spremenljivk lupine znotraj ukazov Awk, v tem delu serije pa se bomo naučili, kako dovoliti Awku uporabo lupinskih spremenljivk, ki lahko vsebujejo vrednosti, ki jih želimo prenesti ukazom Awk.
Obstajata dva načina, kako lahko Awk omogočite uporabo lupinskih spremenljivk:
Oglejmo si primer, ki ponazarja,
Preberi več →Ko bomo odkrili odsek funkcij Awk, se bomo v tem delu serije podali skozi koncept vgrajenih spremenljivk v Awk. V programu Awk lahko uporabite dve vrsti spremenljivk, to sta; uporabniško določene spremenljivke, ki smo jih obravnavali v 8. delu in vgrajene spremenljivke.
Vgrajene spremenljivke imajo vrednosti, ki so že določene v programu Awk, vendar jih lahko tudi natančno spremenimo, med vgrajene s
Preberi več →Verjamem, da serija ukazov Awk postaja vznemirljiva, v prejšnjih sedmih delih smo se sprehodili po nekaterih osnovah programa Awk, ki jih morate obvladati, da boste lahko v Linuxu izvedli nekaj osnovnih filtriranja besedil ali nizov.
Začenši s tem delom, se bomo potopili v predhodna območja Awka, da bomo lahko obdelali bolj zapletene operacije filtriranja besedil ali nizov. Zato bomo zajeli funkcije Awk, kot so spremenljivke, številski izrazi in operaterji dodelitve.
Preberi več →V prejšnjih delih serije orodij Awk smo branje vnosa preučevali večinoma iz datotek (datotek), a kaj, če želite prebrati vnos iz STDIN.
V tem 7. delu serije Awk si bomo ogledali nekaj primerov, kjer lahko filtrirate izhod drugih ukazov, namesto da berete vhod iz datoteke.
Začeli bomo z ukazom ls, v prvem primeru spodaj uporabimo izhod ukaza dir -l kot vhod za Awk za tiskanje uporabnikovega uporabniškega imena, imena skupine in datotek, ki jih ima v lasti v trenutnem imenik:
# dir -l | awk '{print $3, $4, $9;}' Preberi več →V tem šestem delu serije Awk si bomo ogledali uporabo ukaza next , ki Awku pove, da preskoči vse preostale vzorce in izraze, ki ste jih navedli, vendar namesto tega prebere naslednjo vrstico vnosa.
Ukaz next vam pomaga pri preprečevanju izvajanja tega, kar bi pri izvedbi ukaza označil za zapravljanje časa.
Da bi razumeli, kako deluje, si oglejmo datoteko z imenom food_list.txt, ki je videti takole:
No Item_Name Price Quantity 1 Mangoes $3.45 5 2 Apples $2 Preberi več →Ves čas smo preverjali, ali je pogoj izpolnjen ali ne, preproste izraze. Kaj če želite uporabiti več kot en izraz za preverjanje določenega stanja?
V tem članku si bomo ogledali, kako lahko kombinirate več izrazov, imenovanih sestavljeni izrazi, da preverite stanje pri filtriranju besedila ali nizov.
V Awk so sestavljeni izrazi zgrajeni z uporabo && , ki se imenuje (in) in || , ki se imenuje (ali) sestavljeni operaterji.
Splošna sintaksa za sestavljene izraze je:
( first_expression ) && ( second_expr Preberi več →Pri obravnavi številskih ali nizovnih vrednosti v vrstici besedila je filtriranje besedila ali nizov z uporabo operatorjev primerjave uporabno za uporabnike ukaza Awk.
V tem delu serije Awk si bomo ogledali, kako lahko filtrirate besedilo ali nize z uporabo primerjalnih operatorjev. Če ste programer, morate že poznati operaterje primerjave, toda tiste, ki to niso, naj pojasnim v spodnjem razdelku.
Primerjalni operatorji v programu Awk se uporabljajo za primerjavo vrednosti števil ali nizov in vključujejo naslednje: