• hayatimi degistiren super programlama dili, bu dilin sayesinde tovbe ettim ben, arindim, pir-u pak oldum.
  • ismini 3 geli$tiricisinin soyadlarinin ba$ harfinden alan (aho, weinberger, kernighan) programlama dili.. bizzat awk'yi geli$tirenler awk'yi $oyle tanimlami$lardir:

    "awk is a convenient and expressive programming language that can be applied to a wide variety of computing and data-manipulation tasks."
  • bunca senelik unixciyim shell script olayinda kullanmakan tirstigim yegane komut. (turkce manual lazim :) )
  • unix'in özelliklerini de ta$ıyan oldukça güçlü bir yığın dildir. awk, unix kabuğunun dosya i$leme arabirimlerine, c benzeri yapısal programlama gibi birçok ilave getirir.
  • en yaygin olarak, bir metin icerisindeki belirli kolonlari ayiklamak amacli kullanilan komut.
    ornegin bir directory icerisindeki conf uzantili dosyalari, en son degi$tirildikleri tarihle /yedek altina save etmek istiyoruz diyelim*. kar$imizda ls -al ile alinan $oyle bir tablo vardir:

    -rw-r--r-- 1 root other 907 mar 22 15:40 hodo.conf
    -rw-r--r-- 1 root other 191831 mar 22 22:26 hede.conf
    -rw-r--r-- 1 root other 214 may 22 2001 snmpd.conf

    bu durumda, yazmamiz ve/veya ilgili script icerisinde bulunmasi gereken code da $oyle olacaktir:

    cp `ls -al | grep conf | awk '{printf("%s.%s.%s.%s\n", $9, $6, $7, $8)}'` /yedek

    bakin ne guzel awk.
  • metin demiralp tarafindan yakin zamana kadar matematik muhendisligi ilk sinif ogrencilerine ogretilmi$, cogunlugun hicbir i$ine yaramami$tir.
    (bkz: gawk)
  • awk'ı küçümsemeyiniz. misal en basitinden, bir dizinin tüm alt dizinlerinde yer alan dosyaların toplam boyutunu a$ağıdaki tek satır ile öğrenebiliriz:

    find . -type f -exec ls -l {} \; | awk 'begin{z=0}{z+=$5}end{s=sprintf("%.2f", z/(1024*1024));print"toplam="s}'

    tabi burada begin ve end kelimeleri büyük harftir.
  • awk manual'dan direk aktarıyorum, yardı sabah sabah:
    "recipe for a programming language
    1 part egrep 1 part snobol
    2 parts ed 3 parts c
    blend all parts well using lex and yacc. document minimally and release.
    after eight years, add another part egrep and two more parts c. document very well and release."
  • quotaniz doldugunda yardimini esirgemeyen komut. mesela

    du -s *| awk '{fs = " "; printf("%05s %s\n",$1, $2)}' | sort -r

    yazacak olursaniz bulundugunuz dizinde ne kadar dosya, klasor varsa, alt klasorleri ile birlikte toplam boyutunu listeler.

    fs: field seperator..
  • cutın boynu bükük kalır bunun yanında.
hesabın var mı? giriş yap