AWK je minijaturni programski jezik[1] za obradu tekstualnih podataka, uobičajen na Unix/linux operacijskim sustavima. Ime mu je sastavljeno od početnih slova prezimena njegovih triju autora: Aho, Weinberger i Kernighan.
Primjeri
Zadani oblik popisa:
-rwxr-xr-x 73 a.out
Ako se želi dobiti popis koji zadovoljava sljedeće uvjete:
- na popisu se nalaze sve obične datoteke u tekućem direktoriju (one s oznakom -), na popisu se ne smiju nalaziti direktoriji ili specijalne datoteke (oznake d ili c ili bilo koja druga oznaka osim crtice)
- popis ima tri stupca oblika
- prvi stupac je širok 10 znakova, čini ga niz od 10 znakova koji opisuju tip datoteke (jedan znak, crtica odnosno
-
), te nakon toga tri skupa po tri slova koja označuju prava pristupa datoteci
- drugi stupac je širok 8 znakova, čini ga veličina datoteke u bajtovima, centrirana u desno
- treći stupac je ime datoteke, centrirano u lijevo
Ovaj popis moguće je dobiti na više načina, možda najkraći je sljedeći:
ls -al | grep '^-' | awk '{ print $1,$5,$9 }' | xargs printf "%s %8s %s\n"
Objašnjenje:
- ls - je naredba kojom se dobiva popis datoteka u direktoriju, parametar l daje dugački ispis, bez njega ne bi dobili podatak o veličini datoteke, parametar a daje popis svih datoteka, bez njega ne bi dobili datoteke čije ime počinje s točkom
- grep - odbacujemo elemente popisa koji nisu obične datoteke
- awk - biramo prvi, peti i deveti stupac
- xargs - printf "ne zna" primati ulaz redak po redak, nego samo kao jedan redak, što se rješava xargs naredbom
- printf se brine za ispis po specifikaciji, centriranje lijevo ili desno itd.
Izbor prvog, petog i devetog stupca iz ulaznih podataka mogao se dobiti i na neke druge načine, ali kako je već navedeno, ovo je možda najkraći i time ujedno najelegantniji način.