AWK - İş Akışı

Uzman bir AWK programcısı olmak için, onun içsel özelliklerini bilmeniz gerekir. AWK basit bir iş akışını izler - Oku, Yürüt ve Tekrarla. Aşağıdaki şema AWK'nın iş akışını göstermektedir -

Okuyun

AWK, giriş akışından (dosya, boru veya stdin) bir satırı okur ve bunu bellekte depolar.

Yürüt

Tüm AWK komutları girişe sırayla uygulanır. Varsayılan olarak AWK her satırda komutları yürütür. Bunu kalıplar sağlayarak sınırlayabiliriz.

Tekrar et

Bu işlem, dosya sonuna ulaşıncaya kadar tekrar eder.

Program Yapısı

Şimdi AWK'nın program yapısını anlayalım.

BEGIN bloğu

BEGIN bloğunun sözdizimi aşağıdaki gibidir -

Syntax

BEGIN {awk-commands}

BEGIN bloğu, program başlangıcında yürütülür. Yalnızca bir kez yürütülür. Bu, değişkenleri başlatmak için iyi bir yerdir. BEGIN bir AWK anahtar kelimesidir ve bu nedenle büyük harfle yazılmalıdır. Lütfen bu bloğun isteğe bağlı olduğunu unutmayın.

Vücut Bloğu

Gövde bloğunun sözdizimi aşağıdaki gibidir -

Syntax

/pattern/ {awk-commands}

Gövde bloğu, her giriş satırına AWK komutları uygular. Varsayılan olarak, AWK her satırda komutları yürütür. Bunu kalıplar sağlayarak sınırlayabiliriz. Gövde bloğu için anahtar sözcük olmadığını unutmayın.

END Bloğu

END bloğunun sözdizimi aşağıdaki gibidir -

Syntax

END {awk-commands}

END bloğu programın sonunda yürütülür. END bir AWK anahtar sözcüğüdür ve bu nedenle büyük harfle yazılmalıdır. Lütfen bu bloğun isteğe bağlı olduğunu unutmayın.

Bir dosya oluşturalım marks.txt seri numarasını, öğrencinin adını, konu adını ve elde edilen notların sayısını içerir.

1)  Amit    Physics  80
2)  Rahul   Maths    90
3)  Shyam   Biology  87
4)  Kedar   English  85
5)  Hari    History  89

Şimdi AWK betiğini kullanarak dosya içeriklerini başlık ile görüntüleyelim.

Example

[jerry]$ awk 'BEGIN{printf "Sr No\tName\tSub\tMarks\n"} {print}' marks.txt

Bu kod çalıştırıldığında, aşağıdaki sonucu verir -

Output

Sr No Name Sub Marks
1) Amit Physics 80
2) Rahul Maths 90
3) Shyam Biology 87
4) Kedar English 85
5) Hari History 89

Başlangıçta AWK, BEGIN bloğundan başlığı yazdırır. Daha sonra gövde bloğunda, bir dosyadan bir satır okur ve yalnızca içeriği standart çıktı akışına yazdıran AWK'nın yazdırma komutunu yürütür. Bu işlem, dosya sonuna ulaşıncaya kadar tekrar eder.