Dowiedz się, jak korzystać z wbudowanych zmiennych AWK - część 10
- 3626
- 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.
AWK Wbudowane przykłady zmiennychWbudowany 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.tekstZmienna 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.tekstWydrukuj zawartość pliku
$ awk 'end drukuj „liczba rekordów w pliku to:", nr' ~/domeny.tekstLiczba 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.tekstWypisz zawartość pliku
$ awk 'print "Record:", nr, „ma”, nf, „fields”; '~/Names.tekstLiczba 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:
- 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 /passwdAWK 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 /passwdFiltruj 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 /passwdDodaj 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.
- « Geary - dobrze wyglądający nowoczesny klient e -mail dla Linux
- Cumulus - aplikacja pogodowa w czasie rzeczywistym dla komputerów Linux »