Go to the first, previous, next, last section, table of contents.


Hasznos egysoros programok

Sok hasznos awk program rövid, csak egy vagy két sorból áll. Az alábbiakban bemutatunk néhányat. Néhány program olyan programozási megoldásokat is tartalmaz, amelyeket eddig nem tárgyaltunk, de a programhoz fűzött magyarázatokkal talán érthetô lesz, hogy mi is történik.

A legtöbb példa egy `data' nevű adat file-t használ, ami csak a file helyét jelöli; ha használni akarod a programokat, akkor a saját file-od nevét kell a `data' helyére írni.

awk '{ if (length($0) > max) max = length($0) }
END { print max }' data
A program kinyomtatja a leghosszabb sor hosszát a file-ban.
awk 'length($0) > 80' data
A program kinyomtat minden olyan sort, ami hosszabb mint 80 karakter. Az egyetlen szabályban egy feltétel szolgál mintaként, és nincs tevékenység megadva (az alaptevékenységet (nyomtasd ki a sort) használjuk).
expand data | awk '{ if (x < length()) x = length() }
END { print "maximum line length is " x }'
A program kinyomtatja a `data' file-ban szereplô leghosszabb sor hosszát. A bemenetet az expand parancs dolgozza fel elôször; lecseréli a tab karaktereket azonos számú szóközre, így amikor a sor hosszát vizsgálja, lényegében a jobb oldali margó oszlopszámát veszi figyelembe.
awk 'NF > 0' data
A program kinyomtat minden olyan sort, amiben legalább egy mezô szerepel. Ez egy egyszerű megoldás az üres sorok eltávolítására (lényegében egy olyan, az eredetihez hasonló file-t hozunk létre, amibôl az üres sorok hiányoznak).
awk 'BEGIN { for (i = 1; i <= 7; i++)
print int(101 * rand()) }'
A program hét darab zérus és 100 közé esô véletlen számot generál.
ls -lg files | awk '{ x += $5 } ; END { print "total bytes: " x }'
A program a files összesített méretét adja meg byte-ban.
ls -lg files | awk '{ x += $5 }
END { print "total K-bytes: " (x + 1023)/1024 }'
A program a files összesített méretét adja meg kilobyte-ban.
awk -F: '{ print $1 }' /etc/passwd | sort
A program az összes felhasználó belépési nevének rendezett listáját adja vissza.
awk 'END { print NR }' data
A program a sorok számát adja meg a file-ban.
awk 'NR % 2 == 0' data
A program a `data' file páros számú sorait írja ki. Ha az `NR % 2 == 1' kifejezést használod, akkor a páratlan számú sorokat kapod meg.


Go to the first, previous, next, last section, table of contents.