Kako uporabljati ukaz awk v sistemu Linux za obdelavo datotek
Z ukazom awk lahko pregledujete datoteke in izvajate določene ukrepe. Osnove tega ukaza v sistemu Linux segajo vse do leta 1977.
Kaj je ukaz awk v sistemu Linux?
Linux ima skriptni in programski jezik, ki ga lahko uporabljate za pregledovanje in urejanje datotek. Imenuje se awk, njegovi začetki pa segajo vse do leta 1977. Ime je dobil po treh razvijalcih: Alfredu Ahu, Petru Weinbergerju in Brianu Kernighanu. Orodje lahko enostavno uporabljate prek ukazne vrstice ali SSH (Secure Shell). Podobno kot pri uporabi ukaza grep v sistemu Linux lahko z ukazom awk iščete določene vzorce v datotekah, ki jih lahko nato uredite, če so izpolnjeni drugi pogoji.
Kako deluje ukaz awk?
Awk uporablja kombinacijo pogojev in ukazov. Ob izvedbi ukaza pregleda datoteko vrstico za vrstico in išče določene pogoje. Če v vrstici najde te pogoje, tam izvede ukaz. Če pogoj ni določen, se ukaz izvede v vsaki vrstici. Če ne vnesete navodila, se izvede standardno navodilo iz vrstice za vnos. To pomeni, da lahko uporabite Linux awk za iskanje določenih izrazov ali primerov v datotekah.
Kako izgleda sintaksa jezika awk?
Sintaksa ukaza awk v sistemu Linux je naslednja:
$ awk [Options] "Operation {Instructions}" [Target file]shellKatere možnosti ponuja ukaz awk?
Na voljo imate tri možnosti:
- -F [Ločilo]: S to možnostjo lahko nastavite ločilo med datotekami. Običajno je to ena sama preslednica.
- -f [Ime datoteke]: S to možnostjo lahko določite, v kateri datoteki želite izvesti ukaz awk.
- -v: To možnost uporabite za dodajanje spremenljivke.
Primeri ukaza awk
Da bi bolje razumeli, kako se uporablja ukaz »ask«, si oglejte nekaj primerov. V tem primeru uporabljamo datoteko z imenom example.txt, ki v posameznih stolpcih vsebuje seznam mest, držav in celin. Izgleda takole:
City Country Continent
Washington D.C USA America
Paris France Europe
Hanoi Vietnam Asia
Abuja Nigeria AfricashellČe želite izpisati celotno datoteko, morate uporabiti naslednji ukaz:
$ awk "{print $0}" example.txtshellČe pa želite prikazati le posamezne stolpce, lahko uporabite ločen ukaz. V našem primeru gre za prvi in tretji stolpec:
$ awk "{print $1, $3}" example.txtshellTo bo vrnilo naslednji izpis:
Washington D.C America
Paris Europe
Hanoi Asia
Abuja Africa