Portál AbcLinuxu, 21. května 2024 21:17

awk

AWK je Unixový interpretrovaný programovací jazyk určený ke zpracování a analýze textu. Název je odvozen od příjmení jeho tvůrců Alfreda V. Ahoa, Petera J. Weinbergera a Briana W. Kernighana.

Struktura programu v AWK je ve stylu /vzor/ {akce}, tedy například když chceme vytisknout všechny řetězce "unix" v analyzovaném souboru tak to provedeme pomocí /unix/ { print }. Program můžeme zapsat rovnou na příkazovou řádku ve tvaru awk '/unix/ { print }' analyzovany_soubor.txt, nebo do souboru a poté spustit pomocí awk -f program.awk analyzovany_soubor.txt.

Samozřejmě že v dnešní době se už původní AWK nepoužívá, kvůli nekompatibilitě s původní verzí byla autory vydána verze nawk - "new awk" - tato implementace je open-source a spravována Brianem Kernighanem. Další implementace jsou hlavně GAWK (GNU AWK) - implementace AWK od GNU obsahující určitá vylepšení a "featury" a dále MAWK (Mike's AWK) zakládající si hlavně na velmi rychlé interpretaci kódu.

Přestože v dnešní době jsou k dispozici zdánlivě mocnější nástroje na zpracování textu jako třeba Perl, AWK je stále Unixovou klasikou a velmi mocným nástrojem - rozhodně stojí zato se ho naučit.

Příklady použití:

1. Program pro sumu prvních polí z každé zadané řádky, dejme tomu že vstupní data budou v souboru data.

cat data | awk '{SUM+=$1;}END{print SUM;}'

2. Vypsání nejdelší zadané řádky

cat data | awk 'BEGIN{L=0; S="";}{if (length($0) > L){S=$0; L=length($0);}}END{print S;}'

3. Naplnění pole a jeho procházení jednoduchým foreach cyklem

awk '{P[$1]=$2;}END{for(i in P) print i, "=", P[i];}'

Dokument vytvořil: Bones, 18.1.2006 17:28 | Poslední úprava: YYY, 5.11.2010 18:21 | Historie změn | Zobrazeno: 3179×

Další pojmy: autentizace - autorita - autorizace - awk - backend - backportování - bajt

Filtr: A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.