![Cum să remediați problemele de întârziere și PING în PUBG Mobile în 2021](/f/f989ce4e852e9fc73d50adc104c61c8a.jpg?width=100&height=100)
Pe măsură ce descoperim secțiunea din Awk caracteristici, în această parte a seriei, vom parcurge conceptul de variabile încorporate în Awk. Există două tipuri de variabile pe care le puteți utiliza în Awk, acestea sunt; definite de utilizator variabile, pe care le-am acoperit Partea 8 și incorporat variabile.
Incorporat variabilele au valori deja definite în Awk, dar putem modifica cu atenție aceste valori, variabilele încorporate includ:
NUME DE FIȘIER
: numele fișierului de intrare curent (nu modificați numele variabilei)FR
: numărul liniei de intrare curente (adică linia de intrare 1, 2, 3... așa mai departe, nu modificați numele variabilei)NF
: numărul câmpurilor din linia de intrare curentă (nu modificați numele variabilei)OFS
: separator de câmp de ieșireFS
: separator de câmp de intrareORS
: separator de înregistrări de ieșireRS
: separator de înregistrări de intrareSă continuăm să ilustrăm utilizarea unora dintre variabilele încorporate Awk de mai sus:
Pentru a citi numele fișierului fișierului de intrare curent, puteți utiliza fișierul NUME DE FIȘIER
variabilă încorporată după cum urmează:
$ awk '{print FILENAME}' ~ / domains.txt
Vă veți da seama că numele fișierului este tipărit pentru fiecare linie de intrare, acesta este comportamentul implicit al Awk când folosești NUME DE FIȘIER
variabilă încorporată.
Folosind NR
pentru a număra numărul de linii (înregistrări) dintr-un fișier de intrare, amintiți-vă că contează și liniile goale, așa cum vom vedea în exemplul de mai jos.
Când vizualizăm fișierul domenii.txt folosind comandă pisică, contine 14 linii cu text și goale 2 linii:
$ cat ~ / domains.txt.
$ awk 'END {print "Numărul de înregistrări din fișier este:", NR}' ~ / domains.txt
Pentru a număra numărul câmpurilor dintr-o înregistrare sau linie, utilizăm variabila încorporată NR după cum urmează:
$ cat ~ / names.txt.
$ awk '{print "Record:", NR, "has", NF, "fields"; } '~ / names.txt.
Apoi, puteți specifica și un separator de câmp de intrare folosind FS
variabilă încorporată, definește cum Awk împarte liniile de intrare în câmpuri.
Valoarea implicită pentru FS
este spaţiu și filă, dar putem schimba valoarea lui FS
oricărui personaj care îl va instrui pe Awk să împartă liniile de intrare în consecință.
Există două metode pentru a face acest lucru:
Luați în considerare fișierul /etc/passwd pe un sistem Linux, câmpurile din acest fișier sunt împărțite folosind :
caracter, astfel încât să îl putem specifica ca nou separator de câmp de intrare atunci când dorim să filtrăm anumite câmpuri ca în următoarele exemple:
Putem folosi -F
opțiunea după cum urmează:
$ awk -F ':' '{print $ 1, $ 4;}' / etc / passwd.
Opțional, putem profita și de FS
variabilă încorporată după cum urmează:
$ awk 'BEGIN {FS = “:”; } {tipăriți 1 $, 4 $; } '/ etc / passwd.
Pentru a specifica un separator de câmp de ieșire, utilizați OFS
variabilă încorporată, definește modul în care câmpurile de ieșire vor fi separate folosind caracterul pe care îl folosim ca în exemplul de mai jos:
$ awk -F ':' 'BEGIN {OFS = "==>";} {print $ 1, $ 4;}' / etc / passwd.
In acest Partea 10, am explorat ideea utilizării variabilelor încorporate Awk care vin cu valori predefinite. Dar putem, de asemenea, să schimbăm aceste valori, totuși, nu este recomandat să faceți acest lucru decât dacă știți ce faceți, cu o înțelegere adecvată.
După aceasta, vom progresa pentru a acoperi modul în care putem folosi variabilele shell în operațiile de comandă Awk, prin urmare, rămânem conectați la Tecmint.