Portál AbcLinuxu, 3. května 2025 11:14
/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: 3367×
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:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.