Dowiedz się, jak korzystać z wbudowanych zmiennych AWK - część 10

Dowiedz się, jak korzystać z wbudowanych zmiennych AWK - część 10

Gdy odkrywamy sekcję Awk Funkcje w tej części serii przejdziemy przez koncepcję wbudowanych zmiennych w AWK. Istnieją dwa rodzaje zmiennych, których można użyć w AWK, są to; określony przez użytkownika zmienne, które omówiliśmy w części 8 i wbudowany zmienne.

AWK Wbudowane przykłady zmiennych

Wbudowany zmienne mają już zdefiniowane wartości Awk, Ale możemy również ostrożnie zmienić te wartości, wbudowane zmienne obejmują:

  1. NAZWA PLIKU : bieżąca nazwa pliku wejściowego (nie zmieniaj nazwy zmiennej)
  2. Fr : Liczba bieżącej linii wejściowej (czyli linia wejściowa 1, 2, 3… tak dalej, nie zmieniaj nazwy zmiennej)
  3. Nf : liczba pól w bieżącym wierszu wejściowym (nie zmień nazwy zmiennej)
  4. Ofs : separator pola wyjściowego
  5. Fs : separator pola wejściowego
  6. Ors : separator rekordów wyjściowych
  7. Rs : separator rekordów wejściowych

Ilustrujmy użycie niektórych wbudowanych zmiennych AWK powyżej:

Aby odczytać nazwę pliku bieżącego pliku wejściowego, możesz użyć NAZWA PLIKU wbudowana zmienna w następujący sposób:

$ awk 'drukuj nazwę pliku' ~/domeny.tekst 
Zmienna nazwy pliku AWK

Zrozum, że nazwa pliku jest wydrukowana dla każdej linii wejściowej, czyli domyślne zachowanie Awk Kiedy używasz NAZWA PLIKU wbudowana zmienna.

Za pomocą Nr Aby zliczyć liczbę wierszy (rekordów) w pliku wejściowym, pamiętaj, że liczy również puste linie, jak zobaczymy w poniższym przykładzie.

Kiedy przeglądamy plik domeny.tekst Korzystając z polecenia CAT, zawiera 14 Linie z tekstem i puste 2 linie:

$ cat ~/domeny.tekst 
Wydrukuj zawartość pliku
$ awk 'end drukuj „liczba rekordów w pliku to:", nr' ~/domeny.tekst 
Liczba liczby linii AWK

Aby policzyć liczbę pól w rekordzie lub linii, używamy wbudowanej zmiennej NR w następujący sposób:

$ cat ~/imiona.tekst 
Wypisz zawartość pliku
$ awk 'print "Record:", nr, „ma”, nf, „fields”;  '~/Names.tekst 
Liczba liczby pól w pliku

Następnie możesz również określić separator pola wejściowego za pomocą Fs wbudowana zmienna, określa, jak Awk dzieli linie wejściowe na pola.

Wartość domyślna dla Fs Jest przestrzeń I patka, Ale możemy zmienić wartość Fs do każdej postaci, która poinstruuje AWK, aby odpowiednio podzielić linie wejściowe.

Istnieją dwie metody:

  1. Jedną metodą jest użycie Fs wbudowana zmienna
  2. a drugim jest wywołanie -F Opcja AWK

Rozważ plik /etc/passwd W systemie Linux pola w tym pliku są podzielone za pomocą : znak, więc możemy określić to jako nowy separator pola wejściowego, gdy chcemy odfiltrować niektóre pola, jak w następujących przykładach:

Możemy użyć -F Opcja w następujący sposób:

$ awk -f ': "drukuj 1 $, 4 $;' /etc /passwd 
AWK Filtr pola w pliku hasła

Opcjonalnie możemy również skorzystać z Fs wbudowana zmienna jak poniżej:

$ awk 'start fs = „:”;  wydrukuj 1 USD, 4 USD;  ' /etc /passwd 
Filtruj pola w pliku za pomocą AWK

Aby określić separator pola wyjściowego, użyj Ofs Wbudowana zmienna określa, w jaki sposób pola wyjściowe zostaną oddzielone za pomocą znaku, którego używamy, jak w poniższym przykładzie:

$ awk -f ': "start ofs =" ==> "; drukuj 1 $, 4 $;' /etc /passwd 
Dodaj separator do pola w pliku

W tym Część 10, Zbadaliśmy pomysł użycia wbudowanych zmiennych AWK, które są wyposażone w predefiniowane wartości. Ale możemy również zmienić te wartości, nie zaleca się tego, chyba że wiesz, co robisz, z odpowiednim zrozumieniem.

Następnie będziemy postępować w celu pokrycia, w jaki sposób możemy używać zmiennych powłoki w operacjach dowodzenia AWK, dlatego pozostańcie w kontakcie Tecmint.