Príkaz Linux awk
Na tejto stránke
- Príkaz awk
- Základná syntax
- awk Príklady
- Často kladené otázky
- Záver
Spomedzi mnohých nástrojov na spracovanie textu dostupných v prostredí Linuxu vyniká awk svojou silou a všestrannosťou. Pôvodne vyvinutý v 70. rokoch Ahom, Weinbergerom a Kernighanom, awk je viac než len príkaz - je to kompletný programovací jazyk určený na spracovanie a analýzu textových súborov.
Príkaz awk
awk pracuje so súbormi a prúdmi ako sekvenciou záznamov a polí. V predvolenom nastavení je záznam definovaný ako riadok a polia sú oddelené medzerami, hoci obe môžu byť predefinované.
Základná syntax
Základná syntax awk je:
awk 'pattern {action}' file
- Vzor: Určuje, kedy sa má akcia vykonať. Ak sa vynechá, akcia sa vzťahuje na každý riadok.
- Akcia: Sada príkazov vykonaných pri zhode vzoru. Akcie sú uzavreté v zložených zátvorkách {}.
awk Príklady
Vytlačte prvý stĺpec súboru
awk '{print $1}' file.txt
Tento príkaz vytlačí prvé pole každého záznamu (zvyčajne prvé slovo každého riadku) zo súboru.txt.
Súčet a priemer stĺpca
awk '{sum+=$2; count++} END {print "Sum =", sum; print "Average =", sum/count}' file.txt
Tento príkaz vypočíta súčet a priemer hodnôt v druhom stĺpci súboru.txt.
Filtrovanie podľa stavu
awk '$3 > 100' file.txt
Zobrazia sa riadky zo súboru file.txt, kde je tretie pole väčšie ako 100.
Často kladené otázky
Ako zmením oddeľovač polí v awk?
Použite možnosť -F, po ktorej nasleduje požadovaný oddeľovač. Napríklad awk -F, '{print $2}' file.csv vytlačí druhé pole súboru CSV.
Dokáže awk spracovať viacero súborov naraz?
Áno, awk dokáže spracovať niekoľko súborov postupne. Použite awk '{print}' súbor1.txt súbor2.txt na postupné spracovanie súborov1.txt a súbor2.txt.
Ako môžem integrovať awk s premennými shellu?
Premenné shellu môžete odovzdať do awk pomocou voľby -v. Napríklad var="value"; awk -v awkVar="$var" '{print awkVar}' súbor.txt vypíše hodnotu premennej shellu var pre každý riadok v súbore.txt.
Je možné upraviť súbor priamo na mieste pomocou awk?
Nie, awk priamo nepodporuje úpravy na mieste, ako napríklad sed -i. Môžete to však dosiahnuť presmerovaním výstupu awk do dočasného súboru a jeho následným premenovaním na pôvodný súbor.
Dá sa awk použiť na zložité spracovanie textu?
Absolútne. Aj keď je awk jednoduchý pre základné úlohy, je dostatočne výkonný aj na zložité spracovanie textu. Podporuje polia, funkcie a regulárne výrazy, vďaka čomu je vhodný pre rôzne úlohy manipulácie s textom.
Záver
Príkaz awk je všestranný nástroj na spracovanie textu príkazového riadka pre systémy založené na Unixe. Jeho jednoduché, ale robustné funkcie z neho robia nepostrádateľný nástroj pre každého, kto pracuje s textovými súbormi – od analýzy protokolov až po extrakciu údajov. Zvládnutím awk môžu používatelia využiť plný potenciál manipulácie s textom v Linuxe.