Jak pominąć pierwszy wiersz pliku za pomocą `awk`

How Skip First Line File Using Awk



Istnieje wiele zastosowań polecenia `awk` w Linuksie. Na przykład może służyć do drukowania zawartości pliku tekstowego. Pierwszy wiersz wielu plików tekstowych zawiera nagłówek pliku, a czasami pierwszy wiersz musi zostać pominięty podczas drukowania zawartości pliku. W tym samouczku pokażemy, jak wykonać to zadanie za pomocą polecenia `awk`.

Utwórz plik tekstowy

Aby podążać za tym samouczkiem, utwórz plik tekstowy rozdzielany tabulatorami o nazwie booklist.txt o następującej treści. Ten plik zawiera listę książek wraz z odpowiadającymi im autorami. W tym samouczku pokażemy, jak wydrukować różne części tego pliku po pominięciu pierwszej linii.







Cyberbezpieczeństwo z bashem Paul Troncone, Carl Albing

Linia poleceń Kung Fu Jason Cannon

Linia poleceń Linuksa Travis Booth

Bash w łatwych krokach Mike McGrath

Unix w prostych krokach Mike McGrath

Przykład 1: Pomiń pierwszy wiersz pliku za pomocą NR i operatora „>”

Zmienna NR wskazuje liczbę rekordów w pliku. Następujące polecenie `awk` używa zmiennej NR do pominięcia pierwszego wiersza pliku. Wartość NR wynosi 1 dla pierwszego wiersza. Następujące polecenie wyświetli wiersze, dla których wartość NR jest większa niż 1.



$Kotbooklist.txt

$awk '(NR>1)'booklist.txt

Poniższe dane wyjściowe zostaną wygenerowane po uruchomieniu powyższych poleceń. Dane wyjściowe zawierają wszystkie wiersze inne niż pierwszy wiersz pliku.







Przykład 2: Pomiń pierwszy wiersz, używając NR i operatora „!=”

Następujące polecenie `awk` jest podobne do poprzedniego przykładu. Jednak operator porównania „!=” jest tutaj używany zamiast „>”.

$Kotbooklist.txt

$awk 'NR!=1'booklist.txt

Poniższe dane wyjściowe zostaną wygenerowane po uruchomieniu powyższych poleceń. Dane wyjściowe pokazują wszystkie wiersze inne niż pierwszy wiersz pliku.



Przykład 3: Pomiń pierwszy wiersz pliku za pomocą instrukcji warunkowej

Następujące polecenie `awk` wypisze wiersze pliku, jeśli instrukcja if jest prawdziwa. Tutaj instrukcja if będzie prawdziwa tylko wtedy, gdy wartość NR nie będzie równa 1.

$Kotbooklist.txt

$awk „{jeśli (NR!=1) {drukuj}}”booklist.txt

Poniższe dane wyjściowe zostaną wygenerowane po uruchomieniu powyższych poleceń. Dane wyjściowe obejmują wszystkie wiersze z wyjątkiem pierwszego wiersza pliku.

Przykład 4: Wydrukuj nazwy książek z pliku, ale pomiń pierwszy wiersz

W tym przykładzie użyto dwóch poleceń `awk` do wypisania wszystkich nazw książek z wyjątkiem pierwszego. Polecenie `awk` odczyta pierwszą kolumnę z pliku na podstawie separatora pól ( ) i wyśle ​​wynik do drugiego polecenia `awk`. Drugie polecenie `awk` wyświetli żądane wyjście.

$Kotbooklist.txt

$awk -F 'T' „{drukuj 1 USD}”booklist.txt| awk 'NR! = 1 druk}'

Poniższe dane wyjściowe zostaną wygenerowane po uruchomieniu powyższych poleceń. Dane wyjściowe pokazują wszystkie nazwy książek z wyjątkiem nazwy pierwszej książki.

Przykład 5: Sformatuj zawartość pliku po pominięciu pierwszej linii

Opcja „-F”, zmienna NR i funkcja printf są używane w następującym poleceniu `awk` do generowania sformatowanych danych wyjściowych po pominięciu pierwszego wiersza. Polecenie podzieli zawartość pliku na kolumny na podstawie , a printf wypisze pierwszą i drugą kolumnę, gdy wartość NR wynosi co najmniej 2.

$Kotbooklist.txt

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

Poniższe dane wyjściowe zostaną wygenerowane po uruchomieniu powyższych poleceń. Dane wyjściowe pokazują sformatowaną zawartość pliku, z wyłączeniem pierwszego wiersza pliku.

Przykład 6: Wydrukuj nazwy książek po pominięciu pierwszej linii za pomocą NR i NF

Następujące polecenie `awk` używa opcji „-F” oraz NR i NF do drukowania nazw książek po pominięciu pierwszej książki. Opcja „-F” służy do oddzielenia zawartości bazy plików na . NR służy do pomijania pierwszego wiersza, a NF służy do drukowania tylko pierwszej kolumny.

$Kotbooklist.txt

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

Poniższe dane wyjściowe zostaną wygenerowane po uruchomieniu powyższych poleceń. Dane wyjściowe obejmują wszystkie nazwy książek w pliku z wyjątkiem nazwy pierwszej książki.

Przykład 7: Wydrukuj sformatowane nazwiska autorów po pominięciu pierwszego wiersza

Następujące polecenie `awk` używa opcji „-F” i instrukcji warunkowej do wypisania nazwisk autorów po pominięciu pierwszego wiersza. Tutaj wartość NR jest używana w warunku if. Tutaj nazwa autora: zostanie wydrukowana jako pierwsza linia zamiast treści z pierwszej linii. Dla pozostałych wartości NR zostaną wydrukowane nazwiska autorów z pliku.

$Kotbooklist.txt

$awk -F 'T' ' {if (NR==1) printf ' Nazwisko autora: '; else printf '%s ', $2}'booklist.txt

Poniższe dane wyjściowe zostaną wygenerowane po uruchomieniu powyższych poleceń. Dane wyjściowe zawierają tekst, Nazwisko autora: z nową linią, a wszystkie nazwiska autorów są drukowane z wyjątkiem pierwszego.

Wniosek

Pierwszy wiersz pliku można pominąć za pomocą różnych poleceń systemu Linux. Jak pokazano w tym samouczku, istnieją różne sposoby pominięcia pierwszego wiersza pliku za pomocą polecenia `awk`. Warto zauważyć, że zmienna NR polecenia `awk` może być użyta do pominięcia pierwszego wiersza dowolnego pliku.