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.







Nema komentara:
Objavi komentar