İçeriğe atla

AWK

AWK
AWK'ın iki dosyada eşleşen alanları kontrol etmek için kabukta kullanımı
Geliştirici(ler)Bell Labs
İşletim sistemiUnix ve Unix benzeri
PlatformÇoklu platform
Türkomut
Kod deposu Bunu Vikiveri'de düzenleyin

AWK, Alfred Aho, Peter Weinberger ve Brian Kernighan tarafından 1977 yılında geliştirilmiş ve ilk olarak Unix Version 7 ile yayınlanmış bir programlama dilidir. C gibi derlenen dillerden farklı olarak yorumlanan bir betik dilidir ve günümüzde özellikle sed ve Kabuk programlamada kullanılmaktadır.

1985-1988 arasında GNU versiyonu olan GNU AWK / GAWK Paul Rubin, Jay Fenlason ve Richard Stallman tarafından yazılmış 1988'de genel kullanıma sunulmuştur. GNU tabanlı Linux sürümlerine dahil edildiği için GAWK en yaygın kullanılan AWK versiyonudur.

AWK ile CSV gibi metin-tabanlı dosyalardaki veriler düzenlenebilir ve dönüştürülebilir ve veriler değerlendirilip isteğe göre raporlanabilir. sed gibi akış editörlerinde kullanılan veri bulma/düzenleme/dönüştürme komutlarına ek olarak C deki gibi genel programlama yapıları içermektedir, bu sebepten dolayı tam donanımlı bir programlama dili olarak geçmektedir.

Larry Wall 1980'lerin ortalarında Usenet haberlerinden raporlar çıkartmak için awk'ı kullanıyordu ve awk'ı yoğun görevlerde yetersiz gördüğü için Perl 'i geliştirme başlamıştır.[1]

Teknik Notlar

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

Kaynakça

  1. ^ Learning Perl (5 bas.). 2008. ISBN 9780596520106. 

İlgili Araştırma Makaleleri

<span class="mw-page-title-main">C (programlama dili)</span> programlama dili

C, yapısal bir programlama dilidir. Bell Laboratuvarları'nda, Ken Thompson ve Dennis Ritchie tarafından UNIX işletim sistemini geliştirebilmek amacıyla B dilinden türetilmiştir. Geliştirilme tarihi 1972 olmasına rağmen yaygınlaşması Brian Kernighan ve Dennis M. Ritchie tarafından yayımlanan "C Programlama Dili" kitabından sonra hızlanmıştır. Günümüzde neredeyse tüm işletim sistemlerinin yapımında %95'lere varan oranda kullanılmış, hâlen daha sistem, sürücü yazılımı, işletim sistemi modülleri ve hız gereken her yerde kullanılan oldukça yaygın ve sınırları belirsiz oldukça keskin bir dildir. Keskinliği, programcıya sonsuz özgürlüğün yanında çok büyük hatalar yapabilme olanağı sağlamasıdır. Programlamanın gelişim süreciyle beraber programlamanın karmaşıklaşması, gereksinimlerin artması ile uygulama programlarında nesne yönelimliliğin ortaya çıkmasından sonra C programcıları büyük ölçüde nesne yönelimliliği destekleyen C++ diline geçmişlerdir.

<span class="mw-page-title-main">C++</span> bir programlama dili

C++, Bjarne Stroustrup tarafından 1979 yılında Bell Laboratuvarları'nda geliştirilmeye başlanmış, C'yi kapsayan ve çok paradigmalı, yaygın olarak kullanılan, genel amaçlı bir programlama dilidir.

<span class="mw-page-title-main">Visual Basic</span>

Visual Basic, Microsoft tarafından, Basic programlama dili üzerinde geliştirilmiş, olay yönlendirmeli, üst seviye, nesne tabanlı ve görsel bir programlama dilidir. Öğrenilmesi de kullanılması da oldukça kolaydır.

Python, nesne yönelimli, yorumlamalı, birimsel (modüler) ve etkileşimli yüksek seviyeli bir programlama dilidir.

<span class="mw-page-title-main">Derleyici</span> kaynak kodunu bilgisayarın işleyebileceği koda dönüştüren program

Derleyici, kaynak kodu makine koduna dönüştüren yazılımdır. Bir programlama dilinin derleyicisi, o programlama dili kullanılarak yazılmış olan kodu hedef işlemci mimarisine göre uygun şekilde makine koduna derler ve genellikle çıktı olarak yürütülebilir dosyanın oluşturulmasını sağlar. Bu eyleme derleme denir. Bir başka ifadeyle derleyici, bir tür yazı işleyicidir; girdi olarak yazı alır ve çıktı olarak yazı verir.

Program kelimesi sözcük kaynağı olarak belirli şartlara ve düzene göre yapılması öngörülen işlemlerin bütünü anlamına gelmekte ve ayrıca izlence olarak tanımlanmaktadır. Ancak günümüz Türkçe kullanımı içinde genel anlamı, yapılacak bir işin bölümlerini, bu bölümlerin sırasını ve zamanını gösteren tasarı, planlama şekline dönüşmüştür. Bu sebeple okullarda, haftanın belli günlerinde, belli saatlerde verilecek dersleri gösteren çizelgelere; tören, gösteri, gezi vb. nin öngörülen ayrıntılarını gösteren basılı kâğıtlara; siyasi partilerin, toplumsal örgütlerin veya hükûmetin açıkladığı ana ilkelerin tümüne de genel olarak Program ismi verilmektedir.

<span class="mw-page-title-main">Microsoft Excel</span> hesap tablosu uygulaması

Microsoft Excel, Microsoft tarafından Microsoft Windows ve Apple Macintosh işletim sistemleri tabanında çalışmak üzere yazılan ve dağıtımı yapılan bir tablolama programıdır (spreadsheet). İçinde bulunan detaylı finansal çözümlerin yapılabildiği tablolama, grafik oluşturma başarısı ve uygulamalarda kullanılabilecek Visual Basic makro programlama dili sayesinde kendi türünde şu anda dünyadaki en popüler yazılımdır.

<span class="mw-page-title-main">Makine dili</span>

Makine dili, mikroişlemci ya da mikrodenetleyici gibi komut işleme yeteneğine sahip entegrelerin işleyebilecekleri, yapısına göre değişebilen ama genellikle her biri 8 adet 0-1'den (bit) ibaret komutlardan oluşan dile verilen addır. Her bir komutun mnemonic olarak adlandırılan bir tanımı ve işlem kodu olarak adlandırılan bir sayı karşılığı vardır. Mnemonic'ler, op kodun ne işe yaradığını hatırda tutmaya yarar. Örneğin Z-80 mikroişlemcisinde bir alt yordamı çağırmak için kullanılan komutun mnemonic'i Call NNdir ve program yazarken Call NN mnemonic'inin işlem kodu olan "205" sayısı programa konur. Yani bir makine dili program 205 14 45 195 22 15 gibi ardışık sayılardan, daha doğrusu bu sayıların binary karşılığı olan 0 ve 1'lerden oluşur.

<span class="mw-page-title-main">Nesne yönelimli programlama</span> nesne kavramına dayalı programlama paradigması

Nesne yönelimli programlama veya kısaca NYP, Her işlevin nesneler olarak soyutlandığı bir programlama yaklaşımıdır. NYP destekleyen programlama dilleri yüksek seviye diller olarak adlandırılır.

<span class="mw-page-title-main">Bash</span>

Bash, Brian Fox tarafından GNU Projesi için Bourne kabuğuna özgür yazılım alternatifi olarak yazılmış, Unix ve benzeri işletim sistemlerinde kullanılan komut satırı kabuğu ve bu kabuğun betik dilidir. GNU Tasarısı'nın parçasıdır ve birçok GNU/Linux dağıtımında ön tanımlı kabuk olarak gelir. Ayrıca bir versiyonu Windows 10 için Linux İçin Windows Alt Sistemi aracılığıyla mevcuttur. Solaris 11'in de varsayılan kullanıcı betiğidir. Bash ayrıca 2019 öncesinde çıkan tüm MacOS sürümlerinde varsayılan kabuktu.

<span class="mw-page-title-main">GNU Privacy Guard</span>

GNU Privacy Guard, şifreleme yazılımı PGP yerine GPL lisanslı bir özgür yazılım alternatifidir. Özgür Yazılım Vakfı'nın GNU projesinin bir parçası olarak geliştirilmektedir ve en önemli maddi yardımını Alman hükûmetinden almıştır. GPG, IETF'nin OpenPGP standartıyla tamamen uyumludur. PGP'nin güncel sürümleri GPG ve diğer OpenPGP uyumlu sistemlerle uyumluluk göstermektedir. Aynı zamanda bazı eski sürümlerde de bu uyumluluk söz konusudur, fakat güncel sürümün tüm özellikleri eski sürümlerce desteklenmemektedir. Kullanıcıların bu uyum sorunlarını anlamaları ve bunları göz önünde bulundurarak çalışmaları gerekmektedir.

<span class="mw-page-title-main">Binutils</span> farklı nesne dosya formatlarının içerisindeki nesne kodlarının işlenmesi amacı ile kullanılan programlama araçlarının oluşturduğu bir paket

GNU Binutils farklı nesne dosya formatlarının içerisindeki nesne kodlarının işlenmesi amacı ile kullanılan programlama araçlarının oluşturduğu bir pakettir. Şu anda kullanılan güncel versiyonu Cygnus Solutions' daki programcılar tarafından BFD kütüphanesi kullanılarak yazılmıştır. Tipik kullanımı GCC, make ve GDB ile birlikte gerçekleştirilir.

GAWK AWK dilinin açık kaynak kodlu GNU versiyonudur. Dil, 1986 yılında Richard Stallman'ın tavsiyesi ile Paul Rubin ve Jay Fenlason tarafından AWK'ın GNU'ya uyarlanmış halidir; ancak 1988 ve 1989'da David Trueman ve Arnold Robbins tarafından orijinal AWK dili ile olan uyuşmazlık sorunlarını ortadan kaldırılarak modern ve AWK ile tam uyumlu halini almıştır.

<span class="mw-page-title-main">R (programlama dili)</span> istatistik analizi için kullanılan programlama dili

R, istatistiksel hesaplama ve grafikler için yazılım ortamı olup aynı zamanda programlama dilidir. R Foundation tarafından desteklenen ve GNU Tasarısının parçası olan bir özgür yazılımdır. Yeni Zelanda Auckland Üniversitesinden Ross Ihaka ve Robert Gentleman tarafından ortaya çıkarılan R, hâlihazırda R Geliştirme Çekirdek Ekibi tarafından geliştirilmektedir. S programlama diline benzeyen R, S'nin uyarlaması olarak değerlendirilebilir.

Java platformu dillerinden olan BeanShell, kendi sözdiziminin yanı sıra Java programlama dili sözdiziminin büyük bir bölümünü desteklemesi nedeniyle, Java programlama dilinin komut kabuğu olarak da görülebilir. BeanShell'in bu özelliği, küçük Java kod parçalarının denenmesinde ve Java platformu için yazılmış sınıf dosyalarının yüklenip, birim sınamalarının yapılmasında, düzenle-derle-çalıştır döngüsünü kısaltması sayesinde, büyük kolaylık sağlar.

comm

comm, Unix ve Unix Benzeri sistemlerde iki düz metin dosyası arasında karşılaştırma yapmak için kullanılan bir Unix komut satırı programı'dır.

<span class="mw-page-title-main">Ayrıştırıcı (yazılım)</span>

Ayrıştırıcı, girdi verilerini alır ve girdinin yapısal bir temsilini vererek, süreçte doğru sözdizimini kontrol eden bir veri yapısı oluşturan bir yazılım bileşenidir. Ayrıştırma öncesinde veya sonrasında başka adımlar izlenebilir veya bunlar tek bir adımda birleştirilebilir. Ayrıştırıcı, genelde girilen karakter dizisinden belirteçler oluşturan ayrı bir sözcük tabanlı analiz motorunu takip eder. Ayrıştırıcılar elle programlanabilir veya bir ayrıştırıcı üreteci tarafından otomatik olarak veya yarı otomatik olarak oluşturulabilir. Ayrıştırma, biçimlendirilmiş çıktı üretimlerini tek bir şablonda tamamlama görevi görür. Bunlar, farklı etki alanlarına uygulanabilir, ancak bir derleyicinin girdi ve çıktı aşamaları gibi genellikle bir arada sunulur.

cmd.exe Windows komut satırı uygulaması

cmd.exe, Microsoft Windows, Windows NT, Windows CE, OS/2, EComStation ve ReactOS'un varsayılan Komut satırı uygulamasıdır. Uygulama çeşitli işletim sistemlerinde farklılık gösterebilir ancak kullanımı ve komutları hemen hemen aynıdır.

Bilgi işlemde gettext, Unix benzeri bilgisayar işletim sistemlerinde çok dilli programlar yazmak için yaygın olarak kullanılan bir uluslararasılaştırma ve yerelleştirme sistemidir. Gettext'in temel faydalarından biri, programlamayı çevirmekten ayırmasıdır. Gettext'in en sık kullanılan uygulaması, 1995 yılında GNU Projesi tarafından yayınlanan GNU gettext'idir .Çalışma zamanı kitaplığı libintl'dir. Gettext, çok sayıda isim türü için farklı dizeler kullanma seçeneği sunar, ancak dilbilgisel cinsiyet için desteği yoktur.

Burada, sayısal analiz veya veri analizi için kullanılmak üzere tasarlanmış önemli son kullanıcı bilgisayar uygulamaları listelenmiştir: