[go: up one dir, main page]

Prijeđi na sadržaj

AWK

Izvor: Wikipedija

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

[uredi | uredi kôd]

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.

Izvori

[uredi | uredi kôd]
  1. 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.

Vanjske poveznice

[uredi | uredi kôd]
Nedovršeni članak AWK koji govori o računarstvu treba dopuniti. Dopunite ga prema pravilima Wikipedije.