Printre numeroasele unelte de procesare a textului disponibile în shell-ul Linux, awk se remarcă prin puterea și versatilitatea sa.
Dezvoltat inițial în anii 1970 de Aho, Weinberger și Kernighan, awk este mai mult decât o comandă – este un limbaj complet de programare conceput pentru procesarea și analiza fișierelor text.
Comanda awk
awk funcționează pe fișiere și fluxuri ca o secvență de înregistrări și câmpuri.
Implicit, o înregistrare este definită ca un rând, iar câmpurile sunt separate prin spațiu alb, deși ambele pot fi redefinite.
Sintaxa de bază a comenzii awk este:
- Pattern: Specifică momentul când trebuie realizată acțiunea. Dacă este omis, acțiunea se aplică pentru fiecare linie.
- Acțiune: Un set de comenzi care sunt executate atunci când pattern-ul este potrivit. Acțiunile sunt închise în acolade
{}.
Afisarea primei coloane dintr-un fișier
Comanda de mai jos va afisa primul câmp din fiecare înregistrare (de obicei, primul cuvânt din fiecare linie) din fișierul fisier.txt:
Suma și media unei coloane
Această comandă calculează suma și media valorilor din a doua coloană a fișierului fisier.txt:
Filtrare pe baza unei condiții
Această comandă va afișa liniile din fișierul fisier.txt unde al treilea câmp este mai mare de 100:
Întrebări frecvente
-
Cum schimb separatorul de câmpuri în
awk?
Folosește opțiunea-Furmată de separatorul dorit. De exemplu:Aceasta va afișa al doilea câmp dintr-un fișier CSV.
-
Poate
awksă proceseze mai multe fișiere simultan?
Da,awkpoate procesa mai multe fișiere secvențial. De exemplu:Va procesa
fisier1.txtșifisier2.txtconsecutiv. -
Cum pot integra variabilele shell-ului în
awk?
Poți transmite variabilele shell-ului cătreawkfolosind opțiunea-v. De exemplu:Aceasta va afișa valoarea variabilei shell
varpentru fiecare linie din fișierulfisier.txt. -
Este posibil să modific un fișier direct folosind
awk?
Nu,awknu suportă editarea în loc, precumsed -i. Totuși, poți realiza acest lucru redirecționând ieșireaawkîntr-un fișier temporar și apoi redenumindu-l în fișierul original. -
Poate
awkfi folosit pentru procesări complexe de text?
Absolut! Deșiawkeste simplu pentru sarcini de bază, este suficient de puternic pentru procesări complexe de text. Suportă array-uri, funcții și expresii regulate, ceea ce îl face potrivit pentru diverse sarcini de manipulare a textului.




