AWK – Alapvető Példák

AWK – Alapvető Példák

Reklámok

Ez a fejezet leírja, hogy több hasznos AWK parancsokat a megfelelő példa. Vegyünk egy szöveges fájl jelek.a következő tartalommal feldolgozandó txt –

1) Amit Physics 802) Rahul Maths 903) Shyam Biology 874) Kedar English 855) Hari History 89

nyomtatási oszlop vagy mező

utasíthatja az AWK-t, hogy csak bizonyos oszlopokat nyomtasson a beviteli mezőből., A következő példa ezt mutatja −

példa

$ awk '{print $3 "\t" $4}' marks.txt

a kód végrehajtásakor a következő eredményt kapja −

kimenet

Physics 80Maths 90Biology 87English 85History 89

a fájljelekben.txt, a harmadik oszlop tartalmazza a tárgy nevét, a negyedik oszlop pedig az adott témában kapott jeleket tartalmazza. Nyomtassuk ki ezt a két oszlopot az AWK print paranccsal. A fenti példában a $3 és $ 4 képviseli a harmadik, illetve a negyedik mezőt a bemeneti rekordból.

minden sor nyomtatása

alapértelmezés szerint az AWK kinyomtatja a mintának megfelelő összes sort.,

Példa

$ awk '/a/ {print $0}' marks.txt

A végrehajtó ezt a kódot, akkor a következő eredményt −

Kimenet

2) Rahul Maths 903) Shyam Biology 874) Kedar English 855) Hari History 89

a fenti példában a keresés űrlap minta egy. Ha egy minta egyezik sikerül, akkor végrehajt egy parancsot a test blokk. Body block hiányában-alapértelmezett műveletet hajtanak végre, amely kinyomtatja a rekordot. Ezért a következő parancs ugyanazt az eredményt hozza −

példa

$ awk '/a/' marks.txt

oszlopok nyomtatása minta szerint

Ha egy mintaegyezés sikeres, az AWK alapértelmezés szerint kinyomtatja a teljes rekordot., De utasíthatja az AWK-t, hogy csak bizonyos mezőket nyomtasson. Például a következő példa kiírja a harmadik és a negyedik mezőt, amikor egy mintaegyezés sikeres.

példa

$ awk '/a/ {print $3 "\t" $4}' marks.txt

a kód végrehajtásakor a következő eredményt kapja −

kimenet

Maths 90Biology 87English 85History 89

nyomtatási oszlop bármilyen sorrendben

oszlopokat bármilyen sorrendben kinyomtathat. Például a következő példa kinyomtatja a negyedik oszlopot, majd a harmadik oszlopot.,

Példa

$ awk '/a/ {print $4 "\t" $3}' marks.txt

A végrehajtó a fenti kódot, akkor a következő eredményt −

Kimenet

90 Maths87 Biology85 English89 History

Számolás, meg a Nyomtatás Illeszkedik a Minta

nézzük egy példát, ahol lehet számolni, majd nyomtassa ki a sorok száma, amelyek egy minta egyezik sikerült.

példa

$ awk '/a/{++cnt} END {print "Count = ", cnt}' marks.txt

a kód végrehajtásakor a következő eredményt kapja −

kimenet

Count = 4

ebben a példában növeljük a számláló értékét, ha egy mintaegyezés sikeres, és ezt az értéket a VÉGBLOKKBA nyomtatjuk., Ne feledje, hogy a többi programozási nyelvtől eltérően nem kell egy változót deklarálni annak használata előtt.

nyomtatási vonalak több mint 18 karakterrel

csak azokat a sorokat nyomtassuk ki, amelyek több mint 18 karaktert tartalmaznak.

példa

$ awk 'length($0) > 18' marks.txt

a kód végrehajtásakor a következő eredményt kapja −

kimenet

3) Shyam Biology 874) Kedar English 85

AWK egy beépített hosszú függvényt biztosít, amely visszaadja a karakterlánc hosszát. A $0 változó a teljes sort tárolja, testblokk hiányában az alapértelmezett művelet történik, azaz a nyomtatási művelet., Ezért, ha egy sornak több mint 18 karaktere van, akkor az összehasonlítási eredmények igazak, a sor pedig kinyomtatásra kerül.

Reklámok

Vélemény, hozzászólás?

Az email címet nem tesszük közzé. A kötelező mezőket * karakterrel jelöltük