Jak wydrukować zakres kolumn za pomocą polecenia „AWK”

Jak wydrukować zakres kolumn za pomocą polecenia „AWK”
Polecenie „AWK” jest jednym z wielu poleceń, które można użyć do drukowania zakresu kolumn z danych tabelarycznych w Linux. Polecenie „AWK” można używać bezpośrednio z terminalu, wykonując plik skryptu „AWK”. W tym samouczku pokażemy, jak wydrukować zakres kolumn z danych tabelarycznych.

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.