AWK

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.

Izvori

  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


Članak AWK koji govori o računarstvu je mrva. Dopunite ga prema pravilima Wikipedije.


Content Disclaimer

Informasi ini disarikan dari Wikipedia dan disajikan kembali untuk tujuan edukasi. Konten tersedia di bawah lisensi CC BY-SA 3.0. Kami tidak bertanggung jawab atas ketidakakuratan data yang bersumber dari kontribusi publik tersebut.

  1. The information displayed on this website is sourced in part or in whole from Wikipedia and has been adapted for the purpose of restating it. We strive to provide accurate and relevant information, however:
  2. There is no guarantee of absolute accuracy. Wikipedia is an open, collaborative project that can be edited by anyone, so information is subject to change.
  3. It is not intended to constitute professional advice. The content displayed is for informational and educational purposes only. For important decisions (e.g., medical, legal, or financial), please consult a professional.
  4. Content copyright. Wikipedia is licensed under the Creative Commons Attribution-ShareAlike License (CC BY-SA). This means that content may be reused with appropriate attribution and shared under a similar license.
  5. Responsible use. Any risk arising from the use of information from this website is entirely the responsibility of the user.