AWK (programlama dili)

Vikipedi, özgür ansiklopedi
Atla: kullan, ara

AWK, Alfred Aho, Peter Weinberger ve Brian Kernighan tarafından 1978 yılında geliştirilmiş ve birçok Unix sürümünde (özellikle system v, version 3.1'den sonrakilerde) kendisine yer bulmuş, derleyici olmayan ve yalnızca yorumlayıcı bir programlama dilidir (dilin açık kaynak kodlu GNU versiyonu (GAWK) da, 1986 yılında Richard Stallman'ın tavsiyesi ile Paul Rubin ve Jay Fenlason tarafından yazılmış; 1988 ve1989'da David Trueman ve Arnold Robbins yepyeni GAWK versiyonunun AWK ile uyumlu olacak şekilde tamamen baştan oluşturmuşlardır).

AWK ile,

  • Küçük kişisel veritabanlarınızı yönetebilir, formatlı raporlar oluşturabilirsiniz..
  • Veriler üzerinde aritmetik ve string operasyonlarını gerçekleştirebilirsiniz..
  • Genel programlama yapılarını kullanabilir (kıyas operatörleri, döngüler v.s.)..
  • Kabukta bir komutun çıktısını on-the-fly işleyebilir ve başka bir komutun girdisi olacak şekilde formatlayabilirsiniz.
  • Doğru yerde kullandığınızda C, Pascal gibi dillerle -nispeten- zor olan operasyonları tek satırda gerçekleştirebilir,
  • Ağ soketlerine erişim saglayabilirsiniz.

Bunun yanında AWK yorumlanan (interpreted) bir dildir, AWK kodları tek başına çalıştırılabilir bir uygulamaya dönüştürülemez (C ve Pascal'a dönüştürmek ve ikili uygulamalar yaratmak için bazı araçlar mevcuttur), AWK betiklerinin bir sistemde çalışabilmesi için o sistemde AWK yorumlayıcısının bulunması gerekir.

Teknik Notlar[değiştir | kaynağı değiştir]

AWK'ın komut satırında kullanılışı aşağıdaki gibidir :

  awk [ parametreler ] -f program_dosyası [ -- ] dosya ...
  awk [ parametreler ] [ -- ] program_kodu dosya ...

GAWK, AWK'a oranla genellikle daha üstün ve anlaşılır hata mesajları sunar. Hatanın nerede olduğunun ve neden kaynaklandığının daha iyi belirtildiği GAWK'da sorun daha anlaşılır biçimde sunulur:

AWK hatası:

  awk '{print $0,}' dosyaadı
  awk: syntax error near line 1
  awk: illegal statement near line 1

GAWK hatası:

  gawk '{print $0,}' dosyaadı
  gawk: cmd. line:1: {print $0,}
  gawk: cmd. line:1:           ^ parse error