Przykład 1: Wydrukuj zakres kolumn z wyjścia polecenia
Następujące polecenie wydrukuje drugą, trzecią i czwartą kolumny z wyjścia polecenia, „ls -l'. Tutaj numery kolumn są wyraźnie podane, ale bardziej wydajne polecenie do drukowania tego samego zakresu kolumn jest pokazane w następnym przykładzie.
$ ls -l | AWK 'drukuj 2 $, 3 $, 4 $
Powoduje następujące dane wyjściowe powyżej.
Przykład 2: Wydrukuj zakres kolumn z pliku za pomocą a Do pętla
Aby śledzić wraz z tym przykładem i innymi przykładami w tym samouczku, utwórz plik tekstowy o nazwie znaki.tekst z następującą treścią:
ID CSE203 CSE102 CSE202
1109 78 87 79
1167 67 81 70
1190 56 61 69
1156 89 55 78
199 54 66 58
Poniższe polecenie „AWK” wydrukuje pierwsze trzy kolumny znaków.tekst. Do Pętla służy do drukowania wartości kolumn, a pętla zawiera trzy kroki. Nf Zmienna wskazuje całkowitą liczbę pól lub kolumn pliku.
$ CAT Marks.tekst
$ awk 'for (i = 1; i<=NF-1;i++) printf $i" "; print ""' marks.txt
Następujące dane wyjściowe zostaną wyprodukowane przez uruchomienie polecenia. Wyjście pokazuje ucznia IDS i znaki dla CSE203 I CSE102.
Przykład 3: Wydrukuj zakres kolumn, definiując zmienne początkowe i końcowe
Następujące polecenie „AWK” wydrukuje pierwsze trzy kolumny z wyjścia polecenia „LS -L”, inicjując startowy I kończący się zmienne. Tutaj wartość startowy zmienna wynosi 1, a wartość kończący się Zmienna to 3. Zmienne te są iterowane w pętli dla wydrukowania wartości kolumny.
$ ls -l | Awk 'początek fert = 1; last = 3
for (i = First; i < last; i++) printf("%s ", $i) print $last '
Po uruchomieniu polecenia pojawi się następujące dane wyjściowe. Wyjście pokazuje pierwsze trzy wartości kolumny wyjścia, „ls -l”.
Przykład 4: Wydrukuj zakres kolumn z pliku z formatowaniem
Następujące polecenie „AWK” wydrukuje pierwsze trzy kolumny znaki.tekst za pomocą printf i separator pola wyjściowego (Ofs). Tutaj pętla For zawiera trzy kroki, a trzy kolumny zostaną wydrukowane sekwencją z pliku. Ofs jest używany tutaj do dodawania przestrzeni między kolumnami. Gdy wartość licznika pętli (i) jest równa kończący się zmienna, następnie generowana jest nowa linia (\ n).
$ CAT Marks.tekst
$ awk -v start = 1 -v end = 3 'for (i = start; i<=end;i++) printf("%s%s",
$ i, (i == end) ? Znaki „\ n”: OFS).tekst
Następujące dane wyjściowe zostanie wygenerowane po uruchomieniu powyższych poleceń.
Przykład 5: Wydrukuj zakres kolumn z pliku za pomocą instrukcji warunkowej
Poniższe polecenie „AWK” wydrukuje pierwszą i ostatnią kolumny z pliku za pomocą pętli i instrukcji IF. Tutaj pętla zawiera cztery kroki. startowy I kończący się Zmienne są używane w skrypcie do pominięcia drugiej i trzeciej kolumny z pliku za pomocą warunku IF. Zmienna OFS służy do dodawania przestrzeni między kolumnami, a zmienna ORS służy do dodania nowej linii (\ n) po wydrukowaniu ostatniej kolumny.
$ CAT Marks.tekst
$ awk -v start = 2 -v end = 3 'dla (i = 1; i<=NF;i++)
if (i> = start && i<=end) continue;
else printf („%s%s”, $ i, (i!= NF) ? OFS: ORS) 'Znaki.tekst
Następujące dane wyjściowe pojawią się po uruchomieniu powyższych poleceń. Wyjście pokazuje pierwsze i ostatnie kolumny znaków.tekst.
Przykład 6: Wydrukuj zakres kolumn z pliku za pomocą zmiennej NF
Poniższe polecenie „AWK” wydrukuje pierwsze i ostatnie kolumny z pliku za pomocą zmiennej NF. Do drukowania wartości kolumn nie stosuje się żadnych pętli ani instrukcji warunkowych. NF wskazuje liczbę pól. Istnieją cztery kolumny w znakach.tekst. $ (NF-3) definiuje pierwszą kolumnę, a $ nf wskazuje ostatnią kolumnę.
$ CAT Marks.tekst
$ awk 'print $ (nf-3) "" $ nf' znaki.tekst
Następujące dane wyjściowe jest wytwarzane przez uruchamianie powyższych poleceń. Wyjście pokazuje pierwsze i ostatnie kolumny znaków.tekst.
Przykład 7: Wydrukuj zakres kolumn z pliku za pomocą substr () i index ()
Funkcja index () zwraca pozycję, jeżeli wartość drugiego argumentu istnieje w pierwszej wartości argumentu. Funkcja substr () może przyjmować trzy argumenty. Pierwszym argumentem jest wartość ciągu, drugi argument to pozycja wyjściowa, a trzecim argumentem jest długość. Trzeci argument substr () jest pominięty w następującym poleceniu. Ponieważ kolumna zaczyna się od 1 USD w poleceniu „AWK”, funkcja index () zwróci 3 USD, a polecenie wydrukuje z 3 USD do 4 USD.
$ CAT Marks.tekst
$ awk 'print substr (0 USD, indeks (0 USD, 3 USD))' '.tekst
Następujące dane wyjściowe zostaną wyprodukowane przez uruchamianie powyższych poleceń.
Przykład 8: sekwencyjnie wydrukuj zakres kolumn z pliku za pomocą printf
Poniższe polecenie „AWK” wydrukuje pierwszą, drugą i trzecią kolumny znaków.TXT, ustawiając wystarczającą ilość miejsca na 10 znaków.
$ CAT Marks.tekst
$ awk '// printf " %10s %10s %10s \ n", 1 USD, 3 USD, 2' '.tekst
Następujące dane wyjściowe zostaną wyprodukowane przez uruchamianie powyższych poleceń.
Wniosek
Istnieją różne sposoby wydrukowania zakresu kolumn z wyjścia polecenia lub pliku. Ten samouczek pokazuje, w jaki sposób polecenie „AWK” może pomóc użytkownikom Linux w drukowaniu treści z danych tabelarycznych.