`awk` Kullanarak Dosyanın İlk Satırını Atlama

How Skip First Line File Using Awk



Linux'ta 'awk' komutunun çeşitli kullanımları vardır. Örneğin, bir metin dosyasının içeriğini yazdırmak için kullanılabilir. Birçok metin dosyasının ilk satırı dosyanın başlığını içerir ve bazen dosyanın içeriğini yazdırırken ilk satırın atlanması gerekir. Bu derste, `awk` komutunu kullanarak bu görevi nasıl gerçekleştireceğinizi göstereceğiz.

Bir metin dosyası oluşturun

Bu öğreticiyi takip etmek için sekmeyle ayrılmış bir metin dosyası oluşturun. kitap listesi.txt aşağıdaki içerikle. Bu dosya, ilgili yazarlarıyla birlikte kitapların bir listesini içerir. Bu öğreticide, ilk satırı atladıktan sonra bu dosyanın farklı bölümlerini nasıl yazdıracağınızı göstereceğiz.







Paul Troncone, Carl Albing ile siber güvenlik

Komut Satırı Kung Fu Jason Cannon

Linux Komut Satırı Travis Kabini

Kolay adımlarla bash Mike McGrath

Unix kolay adımlarla Mike McGrath

Örnek 1: NR ve '>' operatörünü kullanarak bir dosyanın ilk satırını atlayın

NR değişkeni, bir dosyadaki kayıtların sayısını gösterir. Aşağıdaki 'awk' komutu, bir dosyanın ilk satırını atlamak için NR değişkenini kullanır. NR değeri ilk satır için 1'dir. Aşağıdaki komut, NR değeri 1'den büyük olan satırları yazdıracaktır.



$kedikitap listesi.txt

$awk '(HAYIR> 1)'kitap listesi.txt

Yukarıdaki komutlar çalıştırıldıktan sonra aşağıdaki çıktı üretilecektir. Çıktı, dosyanın ilk satırı dışındaki tüm satırları içerir.







Örnek 2: NR ve '!=' operatörünü kullanarak ilk satırı atlayın

Aşağıdaki 'awk' komutu, önceki örnektekine benzer. Ancak burada '>' yerine '!=' karşılaştırma operatörü kullanılır.

$kedikitap listesi.txt

$awk 'NO! = 1'kitap listesi.txt

Yukarıdaki komutlar çalıştırıldıktan sonra aşağıdaki çıktı üretilecektir. Çıktı, dosyanın ilk satırı dışındaki tüm satırları gösterir.



Örnek 3: Koşullu bir ifade kullanarak dosyanın ilk satırını atlayın

Aşağıdaki `awk` komutu, if ifadesi doğruysa dosyanın satırlarını yazdıracaktır. Burada if ifadesi yalnızca NR değeri 1'e eşit olmadığında doğru olacaktır.

$kedikitap listesi.txt

$awk '{if (NR!=1) {print}}'kitap listesi.txt

Yukarıdaki komutlar çalıştırıldıktan sonra aşağıdaki çıktı üretilecektir. Çıktı, dosyanın ilk satırı dışındaki tüm satırları içerir.

Örnek 4: Dosyadan kitap adlarını yazdırın ancak ilk satırı atlayın

Bu örnekte, birincisi hariç tüm kitap adlarını yazdırmak için iki 'awk' komutu kullanılmıştır. `awk` komutu, alan ayırıcısına ( ) dayalı olarak dosyadan ilk sütunu okuyacak ve çıktıyı ikinci `awk` komutuna gönderecektir. İkinci `awk` komutu istenen çıktıyı yazdıracaktır.

$kedikitap listesi.txt

$awk -F 'T' '{1$ yazdır}'kitap listesi.txt| awk 'NR! = 1 baskı}'

Yukarıdaki komutlar çalıştırıldıktan sonra aşağıdaki çıktı üretilecektir. Çıktı, ilk kitabınki dışındaki tüm kitap adlarını gösterir.

Örnek 5: İlk satırı atladıktan sonra dosya içeriğini biçimlendirin

'-F' seçeneği, NR değişkeni ve printf işlevi, ilk satırı atladıktan sonra biçimlendirilmiş çıktı oluşturmak için aşağıdaki 'awk' komutunda kullanılır. Komut, dosya içeriğini temelinde sütunlara böler ve printf, NR değeri en az 2 olduğunda birinci ve ikinci sütunları yazdırır.

$kedikitap listesi.txt

$awk -F 'T' 'NR>=2 {printf '%30s %20s ', $1, $2}'kitap listesi.txt

Yukarıdaki komutlar çalıştırıldıktan sonra aşağıdaki çıktı üretilecektir. Çıktı, dosyanın ilk satırı hariç, dosyanın biçimlendirilmiş içeriğini gösterir.

Örnek 6: İlk satırı atladıktan sonra NR ve NF kullanarak kitap adlarını yazdırın

Aşağıdaki 'awk' komutu, ilk kitabı atladıktan sonra kitap adlarını yazdırmak için '-F' seçeneğini ve NR ve NF'yi kullanır. '-F' seçeneği, 'deki dosya tabanının içeriğini ayırmak için kullanılır. NR ilk satırı atlamak için kullanılır ve NF yalnızca ilk sütunu yazdırmak için kullanılır.

$kedikitap listesi.txt

$awk -F 'T' 'NR> 1 && NF = 1'kitap listesi.txt

Yukarıdaki komutlar çalıştırıldıktan sonra aşağıdaki çıktı üretilecektir. Çıktı, ilk kitabınki dışında dosyadaki tüm kitap adlarını içerir.

Örnek 7: İlk satırı atladıktan sonra biçimlendirilmiş yazar adlarını yazdırın

Aşağıdaki 'awk' komutu, ilk satırı atladıktan sonra yazar adlarını yazdırmak için '-F' seçeneğini ve koşullu bir ifadeyi kullanır. Burada if durumunda NR değeri kullanılır. Burada Yazar Adı: ilk satırdaki içerik yerine ilk satır olarak yazdırılacaktır. Diğer NR değerleri için dosyadaki yazar isimleri yazdırılacaktır.

$kedikitap listesi.txt

$awk -F 'T' ' {if (NR==1) printf ' Yazar Adı: '; başka printf '%s ', $2}'kitap listesi.txt

Yukarıdaki komutlar çalıştırıldıktan sonra aşağıdaki çıktı üretilecektir. Çıktı, Yazar Adı: metnini yeni bir satırla gösterir ve ilki dışındaki tüm yazar adları yazdırılır.

Çözüm

Bir dosyanın ilk satırı, çeşitli Linux komutları kullanılarak atlanabilir. Bu öğreticide gösterildiği gibi, 'awk' komutunu kullanarak bir dosyanın ilk satırını atlamanın farklı yolları vardır. Dikkat çekici bir şekilde, 'awk' komutunun NR değişkeni herhangi bir dosyanın ilk satırını atlamak için kullanılabilir.