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

- 3657
- 387
- Laura Zygmunt
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.

Wbudowany zmienne mają już zdefiniowane wartości Awk, Ale możemy również ostrożnie zmienić te wartości, wbudowane zmienne obejmują:
NAZWA PLIKU
: bieżąca nazwa pliku wejściowego (nie zmieniaj nazwy zmiennej)Fr
: Liczba bieżącej linii wejściowej (czyli linia wejściowa 1, 2, 3… tak dalej, nie zmieniaj nazwy zmiennej)Nf
: liczba pól w bieżącym wierszu wejściowym (nie zmień nazwy zmiennej)Ofs
: separator pola wyjściowegoFs
: separator pola wejściowegoOrs
: separator rekordów wyjściowychRs
: 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

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

$ awk 'end drukuj „liczba rekordów w pliku to:", nr' ~/domeny.tekst

Aby policzyć liczbę pól w rekordzie lub linii, używamy wbudowanej zmiennej NR w następujący sposób:
$ cat ~/imiona.tekst

$ awk 'print "Record:", nr, „ma”, nf, „fields”; '~/Names.tekst

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:
- Jedną metodą jest użycie Fs wbudowana zmienna
- 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

Opcjonalnie możemy również skorzystać z Fs
wbudowana zmienna jak poniżej:
$ awk 'start fs = „:”; wydrukuj 1 USD, 4 USD; ' /etc /passwd

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

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.
- « Geary - dobrze wyglądający nowoczesny klient e -mail dla Linux
- Cumulus - aplikacja pogodowa w czasie rzeczywistym dla komputerów Linux »