Istnieją różne zastosowania polecenia „AWK” w Linux. Na przykład można go użyć do drukowania zawartości pliku tekstowego. Pierwszy wiersz wielu plików tekstowych zawiera nagłówek pliku, a czasem pierwszy wiersz musi zostać pominięty podczas drukowania zawartości pliku. W tym samouczku pokażemy, jak wykonać to zadanie, używając polecenia „AWK”.
Utwórz plik tekstowy
Aby śledzić ten samouczek, utwórz nazwany plik tekstowy podawany TAB Lista książek.tekst z następującą treścią. Ten plik zawiera listę książek z odpowiednimi autorów. W tym samouczku pokażemy, jak wydrukować różne części tego pliku po pominięciu pierwszej linii.
Cyberbezpieczeństwo z Bash Paul Troncone, Carl AlbingPrzykład 1: Pomiń pierwszy wiersz pliku za pomocą NR i operatora '>
Zmienna NR wskazuje liczbę rekordów w pliku. Poniższe polecenie „AWK” używa zmiennej NR do pominięcia pierwszego wiersza pliku. Wartość NR wynosi 1 dla pierwszej linii. Następujące polecenie wydrukuje wiersze, dla których wartość NR jest większa niż 1.
$ CAT Booklist.tekst
$ AWK '(nr> 1)' Booklist.tekst
Następujące dane wyjściowe zostaną wyprodukowane po uruchomieniu powyższych poleceń. Wyjście zawiera wszystkie linie inne niż pierwszy wiersz pliku.
Przykład 2: Pomiń pierwszy wiersz za pomocą NR i '!= 'Operator
Następujące polecenie „AWK” jest podobne do tego w poprzednim przykładzie. Jednakże '!= „Operator porównawczy jest tu używany zamiast„> ”.
$ CAT Booklist.tekst
$ awk 'nr!= 1 'Booklist.tekst
Następujące dane wyjściowe zostaną wyprodukowane po uruchomieniu powyższych poleceń. Wyjście pokazuje wszystkie linie inne niż pierwszy wiersz pliku.
Przykład 3: Pomiń pierwszy wiersz pliku za pomocą instrukcji warunkowej
Poniższe polecenie „AWK” wydrukuje 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.
$ CAT Booklist.tekst
$ awk 'if (nr!= 1) print '.tekst
Następujące dane wyjściowe zostaną wyprodukowane po uruchomieniu powyższych poleceń. Wyjście zawiera wszystkie linie oprócz pierwszego wiersza pliku.
Przykład 4: Wydrukuj nazwy książek z pliku, ale pomiń pierwszy wiersz
W tym przykładzie używane są dwa polecenia „AWK” do wydrukowania wszystkich nazw książek, z wyjątkiem pierwszych. Polecenie „AWK” odczytuje pierwszą kolumnę z pliku na podstawie separatora pola (\ t) i wyśle dane wyjściowe do drugiego polecenia „AWK”. Drugie polecenie „AWK” wydrukuje pożądane wyjście.
$ CAT Booklist.tekst
$ AWK -f "\ t" 'drukuj 1 $ „.txt | Awk 'nr!= 1 print '
Następujące dane wyjściowe zostaną wyprodukowane po uruchomieniu powyższych poleceń. Dane wyjściowe pokazuje wszystkie nazwy książek, z wyjątkiem nazwy pierwszej książki.
Przykład 5: Sformatuj zawartość pliku po pominięciu pierwszego wiersza
Opcja „-f”, zmienna NR i funkcja drukowania są używane w następującym poleceniu „AWK” do wygenerowania sformatowanego wyjścia po pominięciu pierwszego wiersza. Polecenie podzieli zawartość pliku na kolumny na podstawie \ t, a PrintF wydrukuje pierwszą i drugą kolumny, gdy wartość NR wynosi co najmniej 2.
$ CAT Booklist.tekst
$ awk -f '\ t' 'nr> = 2 printf " %30s %20s \ n", 1 $, 2 $ „.tekst
Następujące dane wyjściowe zostaną wyprodukowane po uruchomieniu powyższych poleceń. Wyjście pokazuje sformatowaną zawartość pliku, z wyłączeniem pierwszego wiersza pliku.
Przykład 6: Wydrukuj nazwy książek po pominięciu pierwszego wiersza za pomocą NR i NF
Poniższe 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 \ t. NR służy do pominięcia pierwszej linii, a NF służy do wydrukowania tylko pierwszej kolumny.
$ CAT Booklist.tekst
$ awk -f '\ t' 'nr> 1 && nf = 1' BookList.tekst
Następujące dane wyjściowe zostaną wyprodukowane po uruchomieniu powyższych poleceń. Wyjście zawiera wszystkie nazwy książek w pliku, z wyjątkiem nazw pierwszej książki.
Przykład 7: Wydrukuj sformatowane nazwy autorów po pominięciu pierwszego wiersza
Poniższe polecenie „AWK” używa opcji „-f” i instrukcji warunkowej do wydrukowania nazw autora po pominięciu pierwszego wiersza. Tutaj wartość NR jest używana w stanie IF. Tutaj „Nazwa autora: \ n \ n” zostanie wydrukowana jako pierwsza linia zamiast treści z pierwszej linii. Nazwy autora z pliku zostaną wydrukowane dla innych wartości NR.
$ CAT Booklist.tekst
$ awk -f '\ t' 'if (nr == 1) printf "\ nauthor nazwa: \ n \ n"; else printf "%s \ n", 2 $ „.tekst
Następujące dane wyjściowe zostaną wyprodukowane po uruchomieniu powyższych poleceń. Wyjście pokazuje tekst „Nazwa autora:” z nową linią, a wszystkie nazwy autora są wydrukowane oprócz pierwszego.
Wniosek
Pierwszy wiersz pliku można pominąć za pomocą różnych poleceń Linux. Jak pokazano w tym samouczku, istnieją różne sposoby pominięcia pierwszego wiersza pliku za pomocą polecenia „AWK”. Zauważnie zmienną NR polecenia „AWK” można użyć do pominięcia pierwszego wiersza dowolnego pliku.