AWK: razlika između inačica

Izbrisani sadržaj Dodani sadržaj
m SpeedyGonsales je premjestio stranicu Awk na AWK
dopuna
Redak 1:
'''AWK''' je minijaturni [[programski jezik]]<ref>[https://web.archive.org/web/20080730063308/http://www.faqs.org/docs/artu/ch08s02.html#awk za''The obraduawk tekstualnihaction 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, [[datotekaEric S. Raymond]], "The Art of Unix Programming", 2003., pristupljeno 11. kolovoza 2016.</ref> za obradu tekstualnih podataka, uobičajen na [[Unix]]/[[linux]] [[operacijski sustav|operacijskim sustavima]]. Ime mu je sastavljeno od početnih slova prezimena njegovih triju autora: '''A'''hoAho, '''W'''einbergerWeinberger i '''K'''ernighan[[Brian Kernighan|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 [[datoteka|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 <code>-</code>), 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 [[bajt]]ovima, 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:
 
<source lang="bash">
ls -al | grep '^-' | awk '{ print $1,$5,$9 }' | xargs printf "%s %8s %s\n"
</source>
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 ==
 
{{izvori}}
 
== Vanjske poveznice ==
 
* 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
 
{{Mrva-rač}}
 
{{Unix}}
[[Kategorija:Programski jezici]]
[[Kategorija:Unix naredbe]]