30 praktičnih `awk` komandi koje bi svaki Linux admin trebao znati!

Komanda awk je jedan od najmoćnijih alata za obradu teksta u Linuxu. Sistem administratori je često koriste za analizu logova, obradu konfiguracionih datoteka, filtriranje podataka i generisanje izvještaja. awk funkcioniše tako što čita ulaz liniju po liniju, a svaku liniju dijeli na polja (kolone). Podrazumijevani separator polja je razmak, ali se može promijeniti pomoću opcije -F. U nastavku donosimo 30 praktičnih i naprednih primjera komande awk koje svaki Linux administrator treba znati.


1. Ispis cijelog sadržaja datoteke

Primjer komande sa sintaksom:

$awk ‘{print}’ test.txt



2. Ispis prve kolone


Primjer komande sa sintaksom:

$awk '{print $1}' test.txt

Prikazuje samo prvu kolonu iz svake linije datoteke.



3. Ispis više kolona


Primjer komande sa sintaksom:

$awk '{print $1, $3}' test.txt

Prikazuje samo prvu i treću kolonu iz svake linije datoteke.



4. Pretraga određene riječi


Primjer komande sa sintaksom:

$awk '/error/' logfile.log

Prikazuje sve linije iz log datoteke koje sadrže riječ ‘error’.



5. Numerisanje linija


Primjer komande sa sintaksom:

$awk ‘{print NR, $0}’ /etc/passwd

NR predstavlja broj linije, pa komanda numeriše sve linije u datoteci.



6. Ispis samo određenog raspona linija


Primjer komande sa sintaksom:

$awk 'NR>=5 && NR<=10' file.txt

Prikazuje linije od 5 do 10.



7. Filtriranje po vrijednosti kolone


Primjer komande sa sintaksom:

$awk '$3 > 100' data.txt

Prikazuje samo linije gdje je vrijednost treće kolone veća od 100.



8. Promjena separatora kolona


Primjer komande sa sintaksom:

$awk -F: '{print $1}' /etc/passwd

Koristi dvotačku kao separator i prikazuje korisnička imena iz /etc/passwd.



9. Ispis korisnika i home direktorija


Primjer komande sa sintaksom:

$awk -F: '{print $1, $6}' /etc/passwd

Prikazuje username i home direktorij korisnika.



10. Ispis samo korisnika sa Bash shellom


Primjer komande sa sintaksom:

$awk -F: '$7=="/bin/bash" {print $1}' /etc/passwd

Filtrira korisnike čiji je default shell /bin/bash.


11. Sabiranje vrijednosti iz kolone


Primjer komande sa sintaksom:

$awk '{sum += $2} END {print sum}' numbers.txt

Sabira sve vrijednosti iz druge kolone.



12. Izračunavanje prosjeka


Primjer komande sa sintaksom:

$awk '{sum+=$2} END {print sum/NR}' numbers.txt

Izračunava prosjek vrijednosti iz druge kolone.



13. Ispis posljednje kolone


Primjer komande sa sintaksom:

$awk '{print $NF}' file.txt

NF predstavlja posljednje polje u liniji.



14. Ispis prve i posljednje kolone


Primjer komande sa sintaksom:

$awk '{print $1, $NF}' file.txt

Prikazuje prvu i posljednju kolonu svake linije.


15. Zamjena riječi


Primjer komande sa sintaksom:

$awk '{gsub("error","warning"); print}' logfile.log

Zamjenjuje riječ error sa warning u svakoj liniji.



16. Brojanje pojave određene riječi


Primjer komande sa sintaksom:

$awk '/failed/ {count++} END {print count}' logfile.log

Broji koliko puta se riječ failed pojavljuje u logu.



17. Ispis jedinstvenih linija


Primjer komande sa sintaksom:

$awk '!seen[$0]++' file.txt

Prikazuje samo jedinstvene linije bez duplikata.



18. Prikaz duplikata


Primjer komande sa sintaksom:

$awk '{a[$0]++} a[$0]==2' file.txt

Prikazuje linije koje se pojavljuju više puta.


19. Formatirani ispis


Primjer komande sa sintaksom:

$awk '{printf "User: %s UID: %s\n", $1, $3}' /etc/passwd

Formatira izlaz koristeći printf.



20. Brojanje ukupnog broja linija


Primjer komande sa sintaksom:

$awk 'END {print NR}' file.txt

Prikazuje ukupan broj linija u datoteci.



21. Filtriranje prema dužini linije


Primjer komande sa sintaksom:

$awk 'length($0) > 50' file.txt

Prikazuje linije koje imaju više od 50 karaktera.



22. Ispis linija koje počinju određenom rječju


Primjer komande sa sintaksom:

$awk '/^root/' /etc/passwd

Prikazuje linije koje počinju riječju root.


23. Ispis linija koje završavaju određenom riječju


Primjer komande sa sintaksom:

$awk '/bash$/' /etc/passwd

Prikazuje linije koje završavaju sa bash.



24. Pretvaranje teksta u velika slova


Primjer komande sa sintaksom:

$awk '{print toupper($0)}' file.txt

Pretvara cijelu liniju u velika slova.



25. Pretvaranje teksta u mala slova


Primjer komande sa sintaksom:

$awk '{print tolower($0)}' file.txt

Pretvara cijelu liniju u mala slova.



26. Ispis samo određenih kolona iz CSV datoteke


Primjer komande sa sintaksom:

$awk -F, '{print $1, $4}' file.csv

Koristi zarez kao separator i prikazuje kolone 1 i 4.



27. Preskakanje prve linije (header)


Primjer komande sa sintaksom:

$awk 'NR>1' file.csv

Ignoriše prvu liniju datoteke.



28. Ispis najveće vrijednosti iz kolone


Primjer komande sa sintaksom:

$awk 'max<$2 {max=$2} END {print max}' data.txt

Pronalazi najveću vrijednost u drugoj koloni.



29. Brojanje korisnika u sistemu


Primjer komande sa sintaksom:

$awk -F: 'END {print NR}' /etc/passwd

Prikazuje ukupan broj korisnika na sistemu.



30. Kreiranje jednostavnog izvještaja


Primjer komande sa sintaksom:

$awk '{print "Proces:", $1, "CPU:", $3}' processes.txt

Generiše jednostavan tekstualni izvještaj iz podataka.



Zaključak


Komanda awk predstavlja jedan od najmoćnijih alata za obradu tekstualnih podataka u Linuxu. Sistem administratori je svakodnevno koriste za analizu logova, obradu sistemskih datoteka, filtriranje podataka i automatizaciju administrativnih zadataka. Dobro poznavanje awk komande omogućava administratorima da brzo analiziraju velike količine podataka i efikasnije upravljaju Linux sistemima.

Share:

Nema komentara:

Objavi komentar

KURS LINUX ESSENTIALS

KURS LINUX ESSENTIALS

PRIRUČNIK - ZORIN OS & PRVI KORACI SA LINUXOM

POPULARNI POSTOVI

Arhiva bloga

NAJNOVIJE