Linux'ta STDIN'den Awk Girişi Nasıl Okunur - Bölüm 7


Awk araç serisinin önceki bölümlerinde çoğunlukla dosyalardan girdi okumaya baktık, peki ya STDIN'den girdi okumak istiyorsanız?

Awk serisinin bu 7. Bölümünde, bir dosyadan girdi okumak yerine diğer komutların çıktısını filtreleyebileceğiniz birkaç örneğe bakacağız.

ls komutuna benzer şekilde çalışan dir yardımcı programı ile başlayacağız, aşağıdaki ilk örnekte Awk'nin sahibinin kullanıcı adını, grup adını ve oluşturduğu dosyaları yazdırması için dir -l komutunun çıktısını girdi olarak kullanıyoruz. /şu anki dizinin sahibi:

dir -l | awk '{print $3, $4, $9;}'

Awk ifadelerini kullandığımız başka bir örneğe bir göz atın; burada, aşağıdaki awk komutunda olduğu gibi dizeleri filtrelemek için bir ifade kullanarak root kullanıcıya ait dosyaları yazdırmak istiyoruz:

dir -l | awk '$3=="root" {print $1,$3,$4, $9;} '

Yukarıdaki komut, geçerli dizindeki kök kullanıcının sahip olduğu dosyaları filtrelememize yardımcı olacak (==) karşılaştırma operatörünü içerir. Bu, $3== ”root ” ifadesi kullanılarak elde edilir.

Belirli bir dizeyle eşleştirmek için awk karşılaştırma operatörünü kullandığımız başka bir örneğe bakalım.

Burada, tecmint_deals.txt adlı dosyanın içeriğini görüntülemek için cat yardımcı programını kullandık ve yalnızca Tech türündeki anlaşmaları görüntülemek istiyoruz, bu nedenle aşağıdaki komutu çalıştıracağız: aşağıdaki komutlar:

cat tecmint_deals.txt
cat tecmint_deals.txt | awk '$4 ~ /tech/{print}'
cat tecmint_deals.txt | awk '$4 ~ /Tech/{print}'

Yukarıdaki örnekte değer ~ /pattern/ karşılaştırma operatörünü kullandık, ancak çok önemli bir şeyi ortaya çıkarmaya çalışacak iki komut var.

Komutu kalıp teknoloji ile çalıştırdığınızda hiçbir şey yazdırılmaz çünkü bu türden bir anlaşma yoktur, ancak Teknoloji ile aşağıdaki anlaşmaları alırsınız: Teknik yazın.

Bu nedenle, bu karşılaştırma operatörünü kullanırken her zaman dikkatli olun; yukarıda gördüğümüz gibi büyük/küçük harfe duyarlıdır.

Bir dosyadan girdi okumak yerine awk için girdi olarak her zaman başka bir komutun çıktısını kullanabilirsiniz, yukarıdaki örneklerde incelediğimiz gibi bu çok basittir.

Örneklerin anlamanız için yeterince açık olduğunu umarız. Herhangi bir endişeniz varsa aşağıdaki yorum bölümünden bunları dile getirebilirsiniz ve serinin awk özelliklerine bakacağımız bir sonraki bölümüne göz atmayı unutmayın. değişkenler, sayısal ifadeler ve atama operatörleri gibi.