AWK – podstawowe przykłady

AWK – podstawowe przykłady

reklamy

Ten rozdział opisuje kilka przydatnych poleceń AWK i ich odpowiednie przykłady. Rozważmy oznaczenie pliku tekstowego.txt do przetworzenia z następującą zawartością −

1) Amit Physics 802) Rahul Maths 903) Shyam Biology 874) Kedar English 855) Hari History 89

Drukowanie kolumny lub pola

możesz polecić AWK wydrukować tylko niektóre kolumny z pola wejściowego., Poniższy przykład pokazuje to –

przykład

$ awk '{print $3 "\t" $4}' marks.txt

Po wykonaniu tego kodu otrzymujesz następujący wynik −

wyjście

Physics 80Maths 90Biology 87English 85History 89

w znacznikach pliku.txt, Trzecia kolumna zawiera nazwę tematu, a Czwarta kolumna zawiera znaki uzyskane w danym temacie. Wydrukujmy te dwie kolumny używając polecenia AWK print. W powyższym przykładzie, $3 i $ 4 reprezentują odpowiednio trzecie i czwarte pola z rekordu wejściowego.

drukowanie wszystkich linii

domyślnie AWK drukuje wszystkie linie pasujące do wzorca.,

przykład

$ awk '/a/ {print $0}' marks.txt

Po wykonaniu tego kodu otrzymujemy następujący wynik −

wyjście

2) Rahul Maths 903) Shyam Biology 874) Kedar English 855) Hari History 89

w powyższym przykładzie szukamy wzorca formularza A. Gdy dopasowanie wzorca powiedzie się, wykonujemy polecenie z bloku ciała. W przypadku braku body block – wykonywana jest domyślna akcja polegająca na wydrukowaniu rekordu. Dlatego poniższe polecenie generuje ten sam wynik −

przykład

$ awk '/a/' marks.txt

Drukowanie kolumn według wzorca

gdy dopasowanie wzorca się powiedzie, AWK domyślnie wypisuje cały rekord., Ale możesz polecić AWK drukowanie tylko niektórych pól. Na przykład poniższy przykład wyświetla trzecie i czwarte pole, gdy dopasowanie wzorca się powiedzie.

przykład

$ awk '/a/ {print $3 "\t" $4}' marks.txt

Po wykonaniu tego kodu otrzymujesz następujący wynik −

wyjście

Maths 90Biology 87English 85History 89

Drukowanie kolumn w dowolnej kolejności

możesz drukować kolumny w dowolnej kolejności. Na przykład poniższy przykład wyświetla czwartą kolumnę, a następnie trzecią kolumnę.,

przykład

$ awk '/a/ {print $4 "\t" $3}' marks.txt

Po wykonaniu powyższego kodu otrzymujesz następujący wynik −

wyjście

90 Maths87 Biology85 English89 History

zliczanie i drukowanie dopasowanego wzorca

zobaczmy przykład, w którym możesz policzyć i wydrukować liczbę linii, dla których dopasowanie wzorca się powiodło.

przykład

$ awk '/a/{++cnt} END {print "Count = ", cnt}' marks.txt

podczas wykonywania tego kodu otrzymujemy następujący wynik −

wyjście

Count = 4

w tym przykładzie zwiększamy wartość counter, gdy dopasowanie wzorca powiedzie się i drukujemy tę wartość w bloku końcowym., Zauważ, że w przeciwieństwie do innych języków programowania, nie ma potrzeby deklarowania zmiennej przed jej użyciem.

Drukowanie linii z więcej niż 18 znakami

Drukuj tylko te linie, które zawierają więcej niż 18 znaków.

przykład

$ awk 'length($0) > 18' marks.txt

Po wykonaniu tego kodu otrzymujesz następujący wynik −

wyjście

3) Shyam Biology 874) Kedar English 85

AWK udostępnia wbudowaną funkcję length, która zwraca długość łańcucha. Zmienna $0 przechowuje całą linię I w przypadku braku body Blocka, wykonywana jest domyślna akcja, tzn. akcja print., W związku z tym, jeśli linia ma więcej niż 18 znaków, to wynik porównania jest true i linia zostanie wydrukowana.

reklamy

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *