Awk

10 Exemple de comenzi Awk Awk

10 Exemple de comenzi Awk Awk
Comanda Awk este un instrument puternic pentru procesarea datelor. Obține date de intrare, le manipulează și dă rezultate la ieșirea standard. Se pot efectua diverse operații pe rândurile și coloanele unui fișier.

Cunoașterea elementelor esențiale ale comenzii „awk” este foarte importantă atunci când vine vorba de procesarea eficientă a datelor, iar acest post acoperă caracteristicile cheie ale comenzii „awk”. Să verificăm mai întâi sintaxa:

$ awk [opțiuni] [fișier]

Unele dintre opțiunile utilizate în mod obișnuit sunt date în tabelul de mai jos:

Opțiune Descriere
-F Pentru a specifica un separator de fișiere
-f Specificați fișierul care conține scriptul „awk”
-v Pentru a atribui variabila

Să aruncăm o privire la câteva exemple despre utilizarea comenzii „awk” și, pentru demonstrație, am creat un fișier text cu numele de testFile.txt:

1. Cum se tipărește o coloană a unui fișier cu comanda awk?

Comanda „awk” poate fi utilizată pentru a obține o anumită coloană a fișierului text. Pentru a imprima conținutul fișierului utilizați:

$ cat testFisier.txt

Acum, pentru a imprima a doua coloană a fișierului, utilizați:

$ awk 'print $ 2' TestFile.txt

Pentru a imprima mai multe câmpuri, utilizați comanda:

$ awk 'print $ 1, $ 2, $ 3' testFile.txt

Dacă nu utilizați virgula „,” atunci ieșirea va fi fără spații:

$ awk 'print $ 1 $ 2 $ 3 $' testFile.txt

2. Cum se utilizează expresia regulată cu comanda awk:

Pentru a potrivi șirurile sau orice expresie, folosim barele „//”, de exemplu, dacă doriți să imprimați numele persoanelor care studiază „Istoricul”, utilizați:

$ awk '/ History / print $ 2' testFile.txt

Rezultatul arată clar că doar „Sam” și „Tommy” studiază cursul „Istorie”.

3. Cum se folosește expresia relațională cu comanda „awk”:

Pentru a se potrivi cu conținutul unui câmp specific, se poate utiliza expresia relațională. Pentru a potrivi orice șir sau expresie cu un câmp, indicați câmpul și utilizați operatorul de comparație „~” cu modelul prezentat în următoarea comandă:

$ awk '$ 3 ~ / is / print $ 2' testFile.txt

Ieșirea de mai sus afișând fiecare câmp din coloana 2 împotriva fiecărui câmp care conține „este” în coloana 3.

Și pentru a obține rezultatul opus comenzii de mai sus, utilizați „! ~ ”Operator:

$ awk '$ 3! ~ / is / print $ 2 'testFile.txt

Pentru comparație, putem folosi și operatori ca mai mari decât „>” și ​​mai mici decât „<” and equal “=” as well:

$ awk '$ 4> 70 print $ 2' testFile.txt

Rezultatul a tipărit numele persoanelor care au obținut note peste 70.

4. Cum se utilizează modelul de gamă cu comanda awk:

O gamă poate fi utilizată și pentru căutare; pur și simplu utilizați virgula „,” pentru a separa intervalul prezentat în comanda menționată mai jos:

$ awk '/ Joel /, / Marlene / print $ 3' testFile.txt

Ieșirea arată subiectele din intervalul de la „Joel” la „Marlene” din coloana 2. Putem folosi semnul dublu egal „==” pentru a defini un interval; vezi exemplul de mai jos:

$ awk '$ 4 == 80, $ 4 == 90 print $ 0' TestFile.txt

Ieșirea afișează numele persoanelor din coloana 2 pentru intervalul de semne „70-80” din coloana 4.

5. Cum se combină modelul folosind operatorul logic:

Utilizarea operatorilor logici precum SAU „||”, ȘI „&&” vă permit să combinați modele pentru căutare. Folosiți următoarea comandă

$ awk '$ 4> 80 && $ 6> 0.4 print $ 2 'testFile.txt

Comanda de mai sus imprimă numele oamenilor pe al patrulea câmp mai semnificativ decât 80 și al șaselea câmp mai mare decât 0.4. Și doar două înregistrări îndeplinesc condiția.

6. Comanda awk expresii speciale:

Există două expresii speciale, „ÎNCEPE" și "SFÂRȘIT”:

ÎNCEPE: Pentru a efectua o acțiune înainte ca datele să fie procesate

END: Pentru a efectua o acțiune după prelucrarea datelor

$ awk 'BEGIN print „Procesarea a început”; tipăriți 2 USD; END print „Procesarea sa încheiat” 'testFile.txt

7. Variabila utilă încorporată a comenzii awk:

Comanda awk are diferite variabile care ajută la procesarea datelor:

Variabil Descriere
NF Oferă numărul de câmpuri din date
NR Oferă numărul înregistrării curente
NUME DE FIȘIER Afișează numele fișierului care este în curs de procesare
FS și OFS Separator de câmp și Separator de câmp de ieșire
RS și ORS Separează înregistrarea și Separatorul de înregistrări de ieșire

De exemplu:

$ awk 'END tipărire „Numele fișierului este” FILENAME „are” NF „câmpuri și” NR „înregistrări”' testFile.txt

Folosim „END”, dar dacă utilizați „BEGIN”, rezultatul va da 0 câmpuri și 0 înregistrări.

8. Cum se schimbă separatorul de înregistrări:

Separatorul implicit din înregistrare este de obicei spațiu; dacă există o virgulă „,” sau punct „.”Ca separator de câmp, apoi utilizați opțiunea„ FS ”împreună cu separatorul.

Să avem un alt fișier în care câmpurile de date sunt separate prin virgule „:”:

$ cat testFisier2.txt
$ awk 'BEGIN FS = “:” print $ 2' testFile2.txt

Deoarece separatorul fișierului este un punct, dar comanda „awk” chiar benefică pentru fișierele de acest fel, pur și simplu utilizați opțiunea „FS”.

„-F” poate fi folosit și:

$ awk -F „:” 'print $ 2' testFile2.txt

Separatorul de înregistrări implicit este „linie nouă”, iar pentru a seta separatorul de înregistrări la „:”, utilizați:

$ awk 'BEGIN RS = “:” print $ 1' testFile2.txt

9. Acțiuni Awk:

Acțiunile Awk sunt programe minuscule care sunt înconjurate de paranteze „” și au mai multe declarații separate prin punct și virgulă „;”.

Cea mai utilizată declarație cu comanda „awk” este declarația „print”. De exemplu, pentru a imprima un text cu fiecare înregistrare, utilizați șir de text între ghilimele:

$ awk '„Este un câmp”, $ 2' fișier de testare.txt

Să efectuăm o operație de sumă simplă folosind awk:

$ awk 'sum + = $ 4 END printf „% d \ n”, sum' testFile.txt

10. Crearea unui program awk:

Să începem cu programarea „awk”, programarea dată mai jos face pur și simplu multiplicare:

ÎNCEPE
i = 2
în timp ce (j<4)

tipăriți „Înmulțirea lui 2 cu” j ”este” i * j;
j++

Salvați programul cu numele „myCode.awk”Și pentru al rula, deschideți terminalul și tastați:

$ awk -f MyCode.awk

Concluzie:

Comanda „awk” este o comandă la îndemână pentru procesarea, scanarea datelor fișierelor text, cum ar fi separarea oricărui câmp special al unui fișier; folosim comanda „awk”. Este mai ușor să căutați orice sub orice formă sau model din fișierele text. În acest ghid, înțelegem elementele de bază ale comenzii „awk” și utilizarea acesteia. Comanda „awk” validează datele, generează rapoarte și chiar analizează fișiere. Utilizarea comenzilor simple „awk” le permite utilizatorilor să scrie programe minuscule pentru a prelucra datele mai eficient.

Cele mai bune jocuri Oculus App Lab
Dacă sunteți proprietarul căștilor Oculus, atunci trebuie să fiți informați despre încărcarea laterală. Încărcarea laterală este procesul de instalare...
Top 10 jocuri de jucat pe Ubuntu
Platforma Windows a fost una dintre platformele dominante pentru jocuri din cauza procentului imens de jocuri care se dezvoltă astăzi pentru a sprijin...
Cele mai bune 5 jocuri arcade pentru Linux
În zilele noastre, computerele sunt mașini serioase folosite pentru jocuri. Dacă nu puteți obține noul scor mare, veți ști la ce mă refer. În această ...