Awk példák
Szöveges állomány kinyomtatása a képernyőre soronként
awk '{print}' /usr/share/dict/wordsEgy példa a rekord orientáltság megértésére
$ awk -F : '{print $3}' /etc/passwd-v kapcsoló változó érték összerendelés
$ awk -v letter=E 'BEGIN{printf "Name = %s\n", letter}'0 és 1 közötti random számok generálása
$ awk -v seed=$RANDOM 'BEGIN{srand(seed);}{print rand()}'Egy fájl előállítása szekvenciáával és random értékekkel
$ for i in {A..Z}; do awk -v letter=$i -v seed=$RANDOM 'BEGIN{srand(seed);print letter " " rand()*10}'; done > file.txt
$ head file.txt
A 2.00514
B 0.389145
C 8.82008
D 8.82008
E 5.345101
Meg tudjuk azt csinálni, hogy az első oszlopban az /usr/share/dict/words fájlból kivett szavak kerüljenek?
1) véletlen sorrendben, minden szó
2) minden betűre egy szó
3) abc szerint sorra, minden betűből 1 véletlen szó
By default, AWK prints all the lines that match pattern
$ awk '/G/ {print $0}' file.txtÁtlag számítás awk-kal (a fenti fájlból)
$ awk 'BEGIN {sum=0; count=0; OFS="\t"} {sum+=$2; count++} END {print "Average:", sum/count}' file.txtAverage: 5.00861
Fájlművelet előkészítése awk-kal. Minden pdf fájl áthelyezése egy könyvtárral feljebb
$ ls *.pdf | egrep -o [0-9]+ | awk '{printf("mv M%03d.pdf ../M%03d.pdf\n",$1, $1+1)}' | bash
5 véletlen fájl kiválasztása awk-kal
$ ls | awk '{print rand() " " $0}' | sort | awk '{print $2}' |head -n 5
Miért nem jó ez a prancs, hogyan lehet kijavítani?
További jó példák itt:
https://www.tutorialspoint.com/awk/awk_basic_examples.htm
https://riptutorial.com/awk
Ultime modifiche: Sunday, 14 November 2021, 21:14