grep, sed și awk în Linux
O mare parte din administrarea Linux înseamnă să extragi informația relevantă din text. grep, sed și awk sunt instrumentele clasice pentru această muncă.
grep pentru filtrare
grep caută linii care corespund unui pattern. grep -i ignoră literele mari/mici, -R caută recursiv, iar -E activează expresii regulate extinse. Exemplu: grep -Ei "error|fail" app.log.
sed pentru transformări
sed este un stream editor. Poate înlocui text, selecta linii sau aplica transformări fără editor interactiv. Exemplu: sed 's/old/new/g' file. Pentru modificare in-place folosește cu grijă -i și fă backup când fișierul este important.
awk pentru coloane și logică
awk lucrează excelent cu câmpuri. awk '{print $1,$3}' afișează coloane, iar separatorul poate fi setat cu -F. Este potrivit pentru rapoarte rapide și agregări simple.
Pipeline-uri
Puterea Unix apare când instrumentele sunt combinate: ss -tulpn | grep LISTEN sau awk după un filtru grep. Fiecare comandă rezolvă o parte mică, iar pipe-ul construiește fluxul.
Când să nu le folosești
Pentru JSON complex preferă jq, pentru XML instrumente dedicate, iar pentru transformări mari poate fi mai clar Python. Alege instrumentul care păstrează scriptul ușor de înțeles și întreținut.
Întrebări frecvente
Care este diferența principală dintre grep și awk?
grep filtrează în principal linii după pattern; awk poate selecta câmpuri, calcula și aplica logică asupra fiecărei înregistrări.
sed poate edita direct un fișier?
Da, cu opțiunea -i, dar este prudent să testezi expresia și să păstrezi un backup.