Przykłady wykorzystania skryptów GAWK

Przykłady wykorzystania skryptów GAWK
Jednym ze sposobów pracy z plikami w Linux jest użycie języka skryptowego do zarządzania automatyzacją powtarzanych zadań. Przykładem dobrego języka scenariusza jest Awk co ułatwia wyodrębnienie danych i praca z wzorami. Implementacja języka skryptowego AWK to GNU gapić się. Jeśli jeszcze nie pogodzisz się z jego użyciem, masz szczęście. Ten post przedstawia różne przykłady użycia GAWK w Linux, a pod koniec tego przewodnika będziesz miał solidne zrozumienie pracy z nim.

Pierwsze kroki z Gawk

Jeśli używasz najnowszych wersji Linux, GAWK należy domyślnie zainstalować. Możesz zweryfikować, sprawdzając jej wersję.

Istnieją różne sposoby używania GAWK. Wspólne funkcje są następujące:

  • Formatuj linie wyjściowe
  • Transformacja plików danych
  • Skanowanie plików na wiersz
  • Podział linii wejściowej na pola
  • Tworzenie sformatowanych raportów
  • Sortowanie danych

Podstawowa składnia dla GAWK to:

$ gawk [opcje stylów POSIX / gnU] -F program_file [ -]
$ gawk [opcje stylów POSIX / GNU] [ -] „program” plik…

Aby użyć gawk, albo używasz -F opcja, aby bezpośrednio określić plik skryptu lub bezpośrednio określić skrypt w wierszu polecenia.

Podczas korzystania z GAWK należy zwrócić uwagę na trzy ważne opcje:

1. -F Plik, -file = plik: Używane, gdy chcesz używać poleceń GAWK i odczytu z pliku. Plik to skrypt.

2. -v var = val, -assign = var = val: Używane, gdy trzeba przypisać wartość do zmiennej przed wykonaniem skryptu.

3. -F FS, -Field -Separator = FS: Wartość predefiniowanej zmiennej FS jest używana jako separator dla pola wejściowego.

Wbudowane zmienne

GAWK oferuje wbudowane zmienne, takie jak:

FS: Używane podczas dzielenia plików i zawiera znak separatora pola.

RS: Zawiera bieżący separator znaków.

OF: Zawiera separator pola wyjściowego, który oddziela pola, które drukuje AWK.

NF: Liczba pól dla rekordu wejściowego jest przechowywana w NF.

Ors: Zawiera separator pola wyjściowego, który oddziela linie wyjściowe wydrukowane przez AWK.

NR: Zawiera całkowitą liczbę linii wejściowych.

W poprzednim przykładzie używamy * jako separatora dla linii wejściowych w pliku.

Przykładowe użycie GAWK

1. -F

Do sortowania pliku tekstowego i drukowania trzech pierwszych pól oddzielonych okrężnicy użyj następującego polecenia. Zauważ, że używamy Passwd Jako nasz plik tutaj:

$ gawk -f: 'drukuj 1 $; Wydrukuj 2 USD; Wydrukuj 3 $ ' /etc /passwd

Tutaj nasz separator jest pełnym okrężnicą. Ponieważ chcemy pierwszych trzech pól, określasz je, jak pokazano w poprzednim przykładzie. Możesz go dostosować i użyć innego separatora i innej liczby pól.

2. -F

Aby określić źródło programu AWK z pliku, użyj flagi -F, a następnie pliku:

$ gawk -f: -f plik1.txt /etc /passwd

3. Drukowanie zawartości pliku

Używanie GAWK w pliku drukuje wszystkie linie danych w pliku.

4. Praca z wzorami

Możesz także użyć GAWK i wydrukować tylko linie pasujące do danego wzoru. Na przykład, aby wydrukować linię zawierającą określone słowo, w naszym przypadku słowo to jest Kim, Poleceniem byłoby:

$ GAWK '/ KIM/ print'-nazwa pliku

Tutaj wzór może być również postacią. Na przykład, aby wydrukować wszystkie wiersze zawierające dwukropek, polecenie byłoby jak na poniższym obrazku:

Możesz także określić określone linie do wydrukowania. Na przykład, aby wydrukować linie zawierające określone znaki, takie jak 6, składnia to:

$ gawk 'długość (0 $)> 6' nazwa pliku

5. Podział linii na pola

GAWK domyślnie drukuje każde pole podczas drukowania linii w pliku. Możesz jednak określić, które pole do wydrukowania. Pierwsze pole jest przechowywane w 1 USD a cała linia jest reprezentowana jako 0 USD. Domyślnie cała linia zostanie wydrukowana, chyba że określisz, aby oddzielić pola na podstawie białej listy.

Na przykład, aby oddzielić wiersze i wydrukować tylko drugie pole każdego wiersza, poleceniem byłoby:

$ gawk 'drukuj 2 $-nazwa

Aby dodać numery linii, dodaj Nr zmienny.

Nowe polecenie byłoby:

$ gawk 'print nr, 2 $ „nazwa pliku

6. Zdobądź liczbę linii

Może być konieczne uzyskanie całkowitej liczby linii dla dużych plików i możesz to osiągnąć za pomocą następującej składni:

$ gawk 'end print nr' nazwa pliku

Wniosek

Wiedza o tym, jak używać GAWK w Linux, jest zabawna i pomocna, szczególnie w przypadku danych tekstowych. Możesz użyć różnych wzorów do wyodrębnienia i manipulowania wierszami danych. Mamy nadzieję, że przykłady omówione w tym artykule dają ci najwyższy start i otworzyć oczy w użyciu GAWK do różnych czynności.