AWK
AWK je minijaturni programski jezik<ref>The awk action language is Turing-complete, and can read and write files. In some versions it can open and use network sockets., izvorno www.faqs.org, preslika na web.archive.org, Eric S. Raymond, "The Art of Unix Programming", 2003., pristupljeno 11. kolovoza 2016.</ref> 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
- prvi stupac je širok 10 znakova, čini ga niz od 10 znakova koji opisuju tip datoteke (jedan znak, crtica odnosno
Ovaj popis moguće je dobiti na više načina, možda najkraći je sljedeći:
<syntaxhighlight lang="bash"> ls -al | grep '^-' | awk '{ print $1,$5,$9 }' | xargs printf "%s %8s %s\n" </syntaxhighlight> 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.
Izvori
Vanjske poveznice
- https://web.archive.org/web/20120310003603/http://en.flossmanuals.net/command-line/ch044_awk/ - ukratko što je awk i nekoliko primjera
- http://www.ibm.com/developerworks/library/l-awk1/ - Tečaj awk-a na IBM-ovim stranicama
- https://www.gnu.org/software/gawk/manual/gawk.html - detaljna specifikacija GNU implementacije awk-a
Nedovršeni članak AWK koji govori o računarstvu treba dopuniti. Dopunite ga prema pravilima uređivanja Hrvatske internetske enciklopedije.
|