AWK - zaawansowane funkcje

AWK - zaawansowane funkcje

AWK to potężne narzędzie do przetwarzania tekstu i manipulacji, które zapewnia szereg zaawansowanych funkcji dla doświadczonych użytkowników. Niektóre z najbardziej przydatnych zaawansowanych funkcji AWK obejmują wyrażenia regularne, instrukcje warunkowe, tablice, funkcje i funkcje manipulacji ciągami. Dzięki tym funkcjom AWK zapewnia potężny i elastyczny zestaw narzędzi, który może być używany do szerokiej gamy zadań, w tym analiza plików dziennika, monitorowanie systemu, ekstrakcja i transformacja danych oraz generowanie raportów.

W tym artykule zbadamy jedne z najbardziej przydatnych i potężnych funkcji AWK dla zaawansowanych użytkowników. Ten samouczek obejmuje:

  1. Korzystanie z wyrażeń regularnych w AWK
  2. Korzystanie z instrukcji warunkowych
  3. Praca z tablicami w AWK
  4. Praca z funkcjami w AWK
  5. Manipulacja strumieniem za pomocą AWK

Zacznijmy artykuł:

Wyrażenia regularne

Jedną z najpotężniejszych cech AWK jest wsparcie dla wyrażeń regularnych. Wyrażenia regularne to wzorce opisujące zestawy ciągów i mogą być używane do dopasowywania, wyszukiwania i manipulowania danymi tekstowymi.

Na przykład następujące polecenie wydrukuje wszystkie wiersze zawierające słowo „błąd” w pliku dziennika:

AWK '/ERROUL/' LOGFILE.tekst
1AWK '/ERROUL/' LOGFILE.tekst

To polecenie użyje AWK do wyszukiwania pliku dziennika dla linii zawierających słowo „błąd” i wydrukować te wiersze na konsoli.

Instrukcje warunkowe

AWK obsługuje instrukcje warunkowe, które pozwalają wykonywać różne polecenia na podstawie wartości zmiennych lub wyrażeń.

Na przykład następujące polecenie wydrukuje „nawet” lub „dziwne” dla każdego numeru w pliku, w zależności od tego, czy jest to równe, czy dziwne:

awk 'if (1 % 2 == 0) wydrukuj 1 $, „nawet”; w przeciwnym razie wydrukuj 1 $, liczby „dziwne”.tekst
1awk 'if (1 % 2 == 0) wydrukuj 1 $, „nawet”; w przeciwnym razie wydrukuj 1 $, liczby „dziwne”.tekst

To polecenie użyje AWK, aby sprawdzić, czy każdy numer w pliku jest równy, czy dziwny, i wydrukować wynik na konsoli.

Tablice

AWK obsługuje również tablice, które pozwalają przechowywać i manipulować zestawami wartości lub struktur danych.

Na przykład następujące polecenie policzy liczbę wystąpień każdego słowa w pliku tekstowym:

awk 'for (i = 1; i<=NF; i++) words[$i]++ END for (w in words) print w, words[w] ' textfile.txt
1awk 'for (i = 1; i<=NF; i++) words[$i]++ END for (w in words) print w, words[w] ' textfile.txt

To polecenie użyje AWK do zapętlania każdego słowa w pliku i przechowywania liczby każdego słowa w tablicy. Ostateczny wynik jest wydrukowany na konsoli.

Funkcje

AWK obsługuje funkcje zdefiniowane przez użytkownika, które pozwalają utworzyć kod wielokrotnego użytku dla wspólnych zadań.

Na przykład następujące polecenie użyje funkcji zdefiniowanej przez użytkownika do konwersji temperatur Fahrenheita na Celsjusza:

AWK 'funkcja f2c (f) return (f-32)*(5/9) print $ 1, f2c (2 $) „.tekst
1AWK 'funkcja f2c (f) return (f-32)*(5/9) print $ 1, f2c (2 $) „.tekst

To polecenie użyje AWK do czytania temperatur w Fahrenheita z pliku i konwersji na Celsjusza za pomocą funkcji zdefiniowanej przez użytkownika.

Manipulacja struny

AWK obsługuje zakres funkcji manipulacji ciągami, które pozwalają modyfikować, łączyć i podzielić.

Na przykład następujące polecenie podzieli listę wartości oddzieloną przecinkami na oddzielne pola:

AWK -f ', „Drukuj 1 $, 2 $”.CSV
1AWK -F ',' 'Drukuj 1 $, 2 $ „.CSV

To polecenie użyje AWK do podziału pliku oddzielonego przecinkiem na osobne pola i wydrukować dwa pierwsze pola na konsolę.

Wniosek

AWK zapewnia szereg zaawansowanych funkcji dla doświadczonych użytkowników, w tym wyrażenia regularne, instrukcje warunkowe, tablice, funkcje i manipulacje ciągami. Opanowując te funkcje, możesz stać się bardziej wydajnym i skutecznym ekspertem w zakresie przetwarzania i manipulacji tekstowymi oraz oszczędzać czas i wysiłek w pracy.