Príkaz Linux awk


Na tejto stránke

  1. Príkaz awk
  2. Základná syntax
  3. awk Príklady
  4. Často kladené otázky
  5. 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.