awk

10 Harika Awk Komutu Örneği

10 Harika Awk Komutu Örneği
Awk komutu, verileri işlemek için güçlü bir araçtır. Girdi verilerini alır, işler ve standart çıktıda sonuçlar verir. Bir dosyanın satır ve sütunlarında çeşitli işlemler yapılabilir.

Verilerin verimli bir şekilde işlenmesi söz konusu olduğunda, “awk” komutunun esaslarını bilmek çok önemlidir ve bu yazı “awk” komutunun temel özelliklerini kapsar. Önce sözdizimini kontrol edelim:

$ awk [seçenekler] [dosya]

Yaygın olarak kullanılan seçeneklerden bazıları aşağıdaki tabloda verilmiştir:

Seçenek Açıklama
-F Bir dosya ayırıcı belirtmek için
-f "awk" komut dosyasını içeren dosyayı belirtin
-v Değişken atamak için

Şimdi “awk” komutunun kullanımı ile ilgili bazı örneklere bakalım ve gösteri için adında bir metin dosyası hazırladım testDosyası.Txt:

1. awk komutuyla bir dosyanın sütunu nasıl yazdırılır?

Metin dosyasının belirli bir sütununu almak için “awk” komutu kullanılabilir. Dosyanın içeriğini yazdırmak için şunu kullanın:

$cat testDosyası.Txt

Şimdi, dosyanın ikinci sütununu yazdırmak için şunu kullanın:

$awk 'print $2' testDosyası.Txt

Birden fazla alanı yazdırmak için şu komutu kullanın:

$awk 'print $1,$2,$3' testFile.Txt

Virgül “,” kullanmazsanız, çıktı boşluksuz olacaktır:

$awk 'print $1$2$3' testFile.Txt

2. awk komutuyla normal ifade nasıl kullanılır:

Dizeleri veya herhangi bir ifadeyi eşleştirmek için eğik çizgi "//" kullanırız, örneğin "Tarih" okuyan kişilerin adlarını yazdırmak istiyorsanız, sonra şunu kullanın:

$awk '/History/ print $2' testFile.Txt

Çıktı, yalnızca "Sam" ve "Tommy"nin "Tarih" dersini okuduğunu açıkça gösteriyor.

3. “awk” komutuyla ilişkisel ifade nasıl kullanılır:

Belirli bir alanın içeriğini eşleştirmek için ilişkisel ifade kullanılabilir. Herhangi bir dizeyi veya ifadeyi bir alanla eşleştirmek için alanı belirtin ve aşağıdaki komutta gösterildiği gibi kalıpla karşılaştırma “~” operatörünü kullanın:

$awk '$3 ~/is/ print $2' testFile.Txt

Sütun 2'deki her alanı, sütun 3'te "is" içeren her alana karşı gösteren yukarıdaki çıktı.

Ve yukarıdaki komutun tersi çıktısını almak için “! ~” operatörü:

$awk '3 $! ~/is/ print $2' testFile.Txt

Karşılaştırma için, büyüktür ">" ve küçük " gibi operatörleri de kullanabiliriz<” and equal “=” as well:

$awk '$4>70 yazdır $2' testDosyası.Txt

Çıktı, 70'ten fazla not alan kişilerin isimlerini yazdırdı.

4. awk komutuyla aralık deseni nasıl kullanılır:

Arama için bir aralık da kullanılabilir; aralığı aşağıda belirtilen komutta gösterildiği gibi ayırmak için virgül "" kullanın:

$awk '/Joel/, /Marlene/ yazdır $3' testDosyası.Txt

Çıktı, 2. sütundan "Joel" ile "Marlene" arasındaki aralığın konularını gösterir. Bir aralık tanımlamak için çift eşittir “==” işaretini kullanabiliriz; aşağıdaki örneğe bakın:

$awk '$4 == 80, $4 == 90 print $0' testDosyası.Txt

Çıktı, 2. sütundaki kişilerin adlarını, 4. sütundan "70 ila 80" arasındaki puan aralığını görüntüler.

5. Mantıksal operatör kullanarak desen nasıl birleştirilir:

VEYA “||” VE “&&” gibi mantıksal operatörlerin kullanımı, arama için kalıpları birleştirmenize olanak tanır. Aşağıdaki komutu kullanın

$awk '$4>80 && $6>0.4 2 $ yazdırın' testDosyası.Txt

Yukarıdaki komut, insanların adlarını 80'den daha önemli olan dördüncü alana ve 0'dan büyük olan altıncı alana karşı yazdırır.4. Ve sadece iki kayıt koşulu yerine getiriyor.

6. awk komutu özel ifadeleri:

İki özel ifade var, “BAŞLA" ve "SON”:

BAŞLA: Veriler işlenmeden önce bir eylem gerçekleştirmek için

END: Veriler işlendikten sonra bir eylem gerçekleştirmek için

$awk 'BEGIN print “İşleme başladı”; 2$ yazdır; END print “İşleme sona erdi”' testFile.Txt

7. awk komutunun kullanışlı yerleşik değişkeni:

awk komutu, veri işlemeye yardımcı olan çeşitli değişkenlere sahiptir:

Değişken Açıklama
NF Verilerdeki alan sayısını verir
NR Mevcut kaydın numarasını verir
DOSYA ADI Şu anda işlenmekte olan dosyanın adını görüntüler
FS ve OFS Alan ayırıcı ve Çıkış Alanı ayırıcı
RS ve ORS Kayıt ve Çıktı Kayıt Ayırıcısını ayırır

Örneğin:

$awk 'ENDprint “Dosya adı ” FILENAME “dır” NF “alanları ve” NR “kayıtları”' testFile.Txt

“END” kullanıyoruz, ancak “BEGIN” kullanırsanız çıktı 0 alan ve 0 kayıt verir.

8. Kayıt ayırıcı nasıl değiştirilir:

Kayıttaki varsayılan ayırıcı genellikle boşluktur; virgül "" veya nokta " varsa.” alan ayırıcınız olarak, ardından ayırıcıyla birlikte “FS” seçeneğini kullanın.

Veri alanlarının virgül iki nokta üst üste “:” ile ayrıldığı başka bir dosyamız olsun:

$kedi testiDosya2.Txt
$awk 'BEGIN FS= “:” print $2' testFile2.Txt

Dosyanın ayırıcısı iki nokta üst üste olduğundan, ancak “awk” komutu bunun gibi dosyalar için bile faydalı olduğundan, “FS” seçeneğini kullanmanız yeterlidir.

"-F" de kullanılabilir:

$awk -F “:” 'print $2' testFile2.Txt

Varsayılan kayıt ayırıcı "yeni satır"dır ve kayıt ayırıcıyı ":" olarak ayarlamak için şunu kullanın:

$awk 'BEGIN RS = “:”print $1' testFile2.Txt

9. Awk Eylemleri:

Awk eylemleri, “” köşeli ayraçlarla çevrili ve noktalı virgülle ayrılmış birden fazla ifadeye sahip küçük programlardır“;”.

“awk” komutu ile en çok kullanılan ifade “print” ifadesidir. Örneğin, her kayıtla birlikte bir metin yazdırmak için metin dizesini tırnak içinde kullanın:

$awk '“Bir alandır,” $2' test dosyası.Txt

awk kullanarak basit bir toplam işlemi gerçekleştirelim:

$awk 'sum += $4 END printf “%d\n”, toplam' testFile.Txt

10. Bir awk programı oluşturma:

“awk” programlama ile başlayalım, aşağıda verilen programlama sadece çarpma işlemi yapıyor:

BAŞLA
ben=2
süre(j<4)

print “2'nin” j “ ile çarpımı ” i*j'dir;
j++

Programı “adına göre kaydedinkodum.awk” ve çalıştırmak için terminali açın ve şunu yazın:

$awk -f kodum.awk

Sonuç:

“awk” komutu, bir dosyanın belirli bir alanını ayırmak gibi metin dosyalarının verilerini işlemek, taramak için kullanışlı bir komuttur; “awk” komutunu kullanıyoruz. Metin dosyalarından herhangi bir biçimde veya desende herhangi bir şeyi aramayı kolaylaştırır. Bu kılavuzda, “awk” komutunun temellerini ve kullanımını anlıyoruz. “awk” komutu verileri doğrular, raporlar oluşturur ve hatta dosyaları ayrıştırır. "awk" basit komutlarını kullanmak, kullanıcıların verileri daha verimli bir şekilde işlemek için küçük programlar yazmasını da sağlar.

Linux Eğitimi için Tomb Raider'ın Gölgesi
Shadow of the Tomb Raider, Eidos Montreal tarafından yaratılan bir aksiyon-macera oyunu serisi olan Tomb Raider serisine eklenen on ikinci oyundur. Oy...
Linux'ta FPS Nasıl Arttırılır?
FPS'nin kısaltması Saniyedeki Kare Sayısı. FPS'nin görevi, video oynatma veya oyun performanslarındaki kare hızını ölçmektir. Basit bir deyişle, her s...
En İyi Oculus Uygulama Laboratuvarı Oyunları
Oculus başlık sahibiyseniz, yandan yükleme hakkında bilgi sahibi olmalısınız. Sideloading, kulaklığınıza mağaza dışı içerik yükleme işlemidir. SideQue...