Ako používať príkaz awk v Bash

Ako Pouzivat Prikaz Awk V Bash



Pri práci v prostredí príkazového riadku je nevyhnutné dobre porozumieť rôznym dostupným príkazom na efektívne spravovanie súborov, adresárov a iných údajov. Jedným z takýchto príkazov je príkaz „awk“. awk je výkonný nástroj používaný na spracovanie a manipuláciu s textovými súbormi v prostredí Unix/Linux. Tento článok vysvetlí, čo je príkaz „awk“ a spôsoby, ako ho efektívne používať.

Čo je príkaz „awk“?

Príkaz „awk“ je výkonný nástroj na manipuláciu a spracovanie textových súborov v prostrediach Unix/Linux. Môže sa použiť na vykonávanie úloh, ako je porovnávanie vzorov, filtrovanie, triedenie a manipulácia s údajmi. awk sa používa hlavne na spracovanie a manipuláciu s údajmi štruktúrovaným spôsobom.







Ako používať príkaz awk

awk je nástroj príkazového riadka, ktorý možno použiť rôznymi spôsobmi. Možno ho vyvolať priamo z príkazového riadku alebo ho možno použiť v spojení so skriptom shellu. Tu je niekoľko príkladov použitia awk:



Príklad 1: Počítanie počtu riadkov v súbore

Ak chcete spočítať počet riadkov v súbore, môžete použiť nasledujúcu syntax awk:



awk 'END{print NR}' < názov-súboru.txt >


Tu je „NR“ vstavaná premenná, ktorá obsahuje počet záznamov (riadkov) spracovaných awk. Kľúčové slovo „END“ hovorí awk, aby vykonal tento príkaz po spracovaní všetkých riadkov v súbore. Tu som vytvoril textový súbor na účely ilustrácie a potom som použil vyššie uvedenú syntax v skripte shellu, ktorý je:





#!/bin/bash
awk 'END{print NR}' testfile.txt


Textový súbor, ktorý som vytvoril, má dva riadky a keď sa použije príkaz awk, výstup sa zobrazí 2, môžete vidieť textový súbor, ktorý som vytvoril na obrázku nižšie:



Príklad 2: Filtrovanie dát

Awk možno použiť na filtrovanie údajov na základe špecifických kritérií a tu je syntax, ktorú by ste mali použiť na tento účel:

awk '!//' < názov-súboru.txt >


Môžete napríklad použiť príkaz nižšie na odfiltrovanie všetkých riadkov v súbore, ktoré obsahujú slovo „Ahoj“.

#!bin/bash
awk '!/Ahoj/' testfile.txt


V tomto príklade je „!“ symbol neguje vyhľadávanie regulárneho výrazu, takže sa vytlačia všetky riadky, ktoré neobsahujú slovo „Ahoj“. Použil som rovnaký textový súbor ako v predchádzajúcom príklade, takže tu je výstup vyššie uvedeného skriptu:

Príklad 3: Extrahovanie špecifických polí

awk možno použiť aj na extrahovanie konkrétnych polí zo súboru. Ak máte napríklad súbor obsahujúci zoznam mien a adries a chcete extrahovať iba mená, môžete použiť nasledujúci príkaz:

awk '{print $<číslo poľa>}' < názov-súboru.txt >


Tu pre ilustráciu som vytlačil prvé pole toho istého textového súboru a „$1“ predstavuje prvé pole v každom riadku súboru. Príkaz „print“ povie awk, aby vytlačil iba toto pole.

#!/bin/bash
awk '{print $1}' testfile.txt


V textovom súbore je prvá položka prvého riadku „Toto“ a prvá položka druhého riadku je „Ahoj“, takže tu je výstup daného kódu:

Záver

Príkaz awk je výkonný nástroj, ktorý sa používa na manipuláciu a spracovanie textových súborov. Umožňuje vykonávať rôzne operácie s textovými súbormi, ako je tlač konkrétnych stĺpcov, vyhľadávanie vzorov a počítanie súm. Osvojením si základov awk môžete zefektívniť svoj pracovný postup a stať sa efektívnejším a efektívnejším používateľom Linuxu alebo Unixu.