AWK NF nedir?

Awk Nf Nedir



AWK betik dili ayrıca önceden tanımlanmış bazı amaçlara hizmet etmek için bir dizi yerleşik özel değişkene sahiptir. Böyle bir yerleşik değişken, kendi önceden tanımlanmış işlevselliğine sahip olan “NF” dir. Bu makale, Ubuntu 20.04'teki bazı ilgili örnekleri göstererek bu yerleşik AWK değişkeninin amacını keşfedecektir.

Ubuntu 20.04'te AWK NF:

“NF” AWK değişkeni, sağlanan herhangi bir dosyanın tüm satırlarındaki alan sayısını yazdırmak için kullanılır. Bu yerleşik değişken, dosyanın tüm satırlarını birer birer yineler ve her satır için alan sayısını ayrı ayrı yazdırır. Bu işlevi güzel bir şekilde anlamak için aşağıda tartışılan örnekleri okumanız gerekecektir.

Ubuntu 20.04'te AWK NF Kullanımını Gösteren Örnekler:

Aşağıdaki dört örnek size AWK NF kullanımını çok kolay anlaşılır bir şekilde öğretecek şekilde tasarlanmıştır. Bu örneklerin tümü Ubuntu 20.04 işletim sistemi kullanılarak uygulanmıştır.







Örnek 1: Bir Metin Dosyasının Her Satırından Alan Sayısını Yazdırın:

Bu örnekte, Ubuntu 20.04'te bir metin dosyasının her satırının veya satırının veya kaydının alan veya sütun sayısını yazdırmak istedik. Size bunu yapma yöntemini göstermek için aşağıdaki resimde gösterilen metin dosyasını oluşturduk. Bu metin dosyası, Pakistan'ın beş farklı şehrinden kilogram başına elma oranlarını içerir.





Bu örnek metin dosyasını oluşturduktan sonra, bu metin dosyasının her bir satırından alan sayısını terminalimizde yazdırmak için aşağıdaki komutu yürüttük:





$ awk ' { NF'yi yazdır } AppleRates.txt

Bu komutta, bir AWK komutu çalıştırdığımızı gösteren 'awk' anahtar kelimesine ve ardından hedef metin dosyasının her satırında basit bir şekilde yinelenen ve alan sayısını her biri için ayrı ayrı yazdıran 'print NF' ifadesine sahibiz. metin dosyasının satırı. Son olarak, bizim durumumuzda 'AppleRest.txt' olan (alanları sayılacak olan) o metin dosyasının adına sahibiz.



Metin dosyamızın beş satırının tümü için aynı sayıda alan, yani 2 olduğu için, bu komutun yürütülmesi nedeniyle tüm metin dosyası satırları için alan sayısı olarak aynı sayı yazdırılır. Bu, aşağıdaki görüntüden görülebilir:

Örnek 2: Bir Metin Dosyasının Her Satırından Alan Sayısını Sunulabilir Şekilde Yazdırın:

Yukarıda tartışılan örnekte görüntülenen çıktı, metin dosyasının her satırının satır numaraları ve alan sayısı görüntülenerek de güzel bir şekilde sunulabilir. Ayrıca satır numaralarını alan numaralarından istediğimiz herhangi bir özel karakterle ayırabiliriz. Size bunu göstermek için ilk örneğimizde kullandığımız aynı metin dosyasını kullanacağız. Ancak bu durumda çalıştırılacak komutumuz biraz farklılık gösterecek olup aşağıdaki gibidir:

$ awk ' { NR, “---”, NF yazdır } AppleRates.txt

Bu komutta, hedef metin dosyamızın tüm satırlarının satır numaralarını basacak yerleşik AWK değişkeni “NR”yi tanıttık. Ayrıca, sağladığımız metin dosyasındaki satır numaralarını alan sayısından ayırmak için özel bir karakter olarak “-” olmak üzere üç tire kullandık.

Aynı metin dosyasının bu biraz değiştirilmiş çıktısı aşağıdaki resimde gösterilmektedir:

Örnek 3: Bir Metin Dosyasının Her Satırından İlk ve Son Alanları Yazdırın:

AWK'nin 'NF' özel değişkeni, sağlanan bir metin dosyasındaki tüm satırların alan sayısını saymanın yanı sıra, sağlanan metin dosyasından son alanın gerçek değerlerini çıkarmak için de kullanılabilir. Yine, ilk iki örneğimizde kullandığımız aynı metin dosyasını kullandık. Ancak bu örnekte metin dosyamızın ilk ve son alanlarının gerçek değerlerini yazdırmak istiyoruz. Bunun için aşağıdaki komutu yürüttük:

$ awk ' { Yazdır 1 dolar , $NF } AppleRates.txt

Bu komutta “awk” anahtar kelimesini “print $1, $NF” ifadesi takip eder. “$1” özel değişkeni verdiğimiz metin dosyasındaki ilk alanın veya ilk sütunun değerlerini yazdırmak için, “$NF” AWK değişkeni ise son alanın veya son sütunun değerlerini yazdırmak için kullanılmıştır. hedef metin dosyamızın. Burada dikkat etmeniz gereken, “NF” AWK değişkenini olduğu gibi kullandığımızda, her satırın alan sayısını saymak için kullanılıyor; ancak, dolar “$” simgesiyle birlikte kullanıldığında, sağlanan metin dosyasının son alanından gerçek değerleri çıkaracaktır. Komutun geri kalanı, ilk iki örnekte kullanılan komutlarla aşağı yukarı aynıdır.

Aşağıda gösterilen çıktıda, sağladığımız metin dosyasının ilk ve son alanlarındaki gerçek değerlerin terminalde yazdırıldığını görebilirsiniz. Bu çıktının 'cat' komutunun çıktısına oldukça benzer olduğunu görebilirsiniz, çünkü sağlanan metin dosyamızda yalnızca iki alan vardı; bu nedenle, bir bakıma, yukarıda belirtilen komutun yürütülmesi sonucunda tüm metin dosyamızın içeriği terminalde yazdırılmıştır.

Örnek 4: Bir Metin Dosyasında Alanları Eksik Olan Kayıtları Ayırın:

Bazen bir metin dosyasında bazı alanları eksik olan bazı kayıtlar olabilir ve bu kayıtları her yönüyle eksiksiz olanlardan ayırmak isteyebilirsiniz. Bu, “NF” AWK değişkeni kullanılarak da yapılabilir. Bunun için beş farklı öğrencinin üç farklı sınavdaki sınav puanlarının isimleriyle birlikte yer aldığı “ExamMarks.txt” adında bir metin dosyası oluşturduk. Ancak üçüncü sınavda bazı öğrenciler devamsızlık yaptığı için puanları eksik kalmıştır. Bu metin dosyası aşağıdaki gibidir:

Alanları eksik olan kayıtları, alanları dolu olanlardan ayırt etmek için aşağıda gösterilen komutu uygulayacağız:

$ awk ' { NR'yi yazdır, “--- > ”, NF } ’ ExamMarks.txt

Bu komut, ikinci örneğimizde kullandığımız komutla aynıdır. Ancak aşağıdaki görseldeki bu komutun çıktısından birinci ve dördüncü kayıtların eksiksiz olduğunu, ikinci, üçüncü ve beşinci kayıtların ise eksik alanlar içerdiğini görebilirsiniz.

Çözüm:

Bu yazının amacı “NF” AWK özel değişkeninin kullanımını açıklamaktı. Önce bu değişkenin nasıl çalıştığına kısaca değindik ve ardından dört farklı örnek yardımıyla bu kavramı güzelce detaylandırdık. Paylaşılan tüm örnekleri iyice anladığınızda, toplam alan sayısını saymak ve sağlanan dosyanın son alanının gerçek değerlerini yazdırmak için “NF” AWK değişkenini kullanabileceksiniz.