Awk

Oszloptartomány nyomtatása az 'awk' paranccsal

Oszloptartomány nyomtatása az 'awk' paranccsal
Az 'awk' parancs egyike azon sok parancsnak, amelyek segítségével oszlopok tartományát táblázatos adatokból lehet kinyomtatni a Linuxban. Az 'awk' parancs közvetlenül a terminálról használható az 'awk' parancsfájl futtatásával. Ebben az oktatóanyagban megmutatjuk, hogyan nyomtathat oszloptartományt táblázatos adatokból.

1. példa: Oszloptartomány nyomtatása egy parancs kimenetéből

A következő parancs kinyomtatja a második, harmadik és negyedik oszlopot a parancs kimenetéből, - ls". Itt az oszlopok száma kifejezetten meg van adva, de a következő példában egy hatékonyabb parancs azonos oszloptartomány nyomtatására látható.

$ ls -l | awk 'print $ 2, $ 3, $ 4'

A következő kimenetet a fenti parancs hozza létre.

2. példa: Nyomja meg az oszlopok tartományát egy fájlból az a használatával mert hurok

Ennek a példának és az oktatóanyag többi példájának követéséhez hozzon létre egy nevű szövegfájlt jelek.txt a következő tartalommal:

CSE203 azonosító CSE102 CSE202
1109 78 87 79
1167 67 81 70
1190 56 61 69
1156 89 55 78
199 54 66 58

A következő 'awk' parancs kinyomtatja az első három oszlopot.txt. A mert a hurok az oszlopértékek kinyomtatására szolgál, és a ciklus három lépést tartalmaz. A NF változó a fájl mezőinek vagy oszlopainak teljes számát jelöli.

$ macskajel.txt
$ awk 'for (i = 1; i<=NF-1;i++) printf $i" "; print ""' marks.txt

A következő kimenetet a parancs futtatásával állítjuk elő. A kimenet a hallgatót mutatja Azonosítók és a jelek CSE203 és CSE102.

3. példa: Az oszloptartomány kinyomtatása kezdő és befejező változók meghatározásával

A következő 'awk' parancs kinyomtatja az első három oszlopot az 'ls -l' parancs kimenetéből az inicializálásával kezdve és befejező változók. Itt a kezdve változó 1, és a befejező változó 3. Ezeket a változókat egy for ciklusban iterálják az oszlopértékek kinyomtatásához.

$ ls -l | awk 'BEGIN first = 1; utolsó = 3
for (i = első; i < last; i++) printf("%s ", $i) print $last '

A következő kimenet jelenik meg a parancs futtatása után. A kimenet a kimenet első három oszlopértékét mutatja, 'ls -l'.

4. példa: Oszloptartomány nyomtatása egy fájlból formázással

A következő 'awk' parancs kinyomtatja a fájl első három oszlopát jelek.txt felhasználásával printf és kimeneti mező elválasztó (OFS). Itt a for ciklus három lépést tartalmaz, és három oszlopot nyomtatnak egymás után a fájlból. OFS itt az oszlopok közötti szóközhöz adható. Amikor az (i) hurok számláló értéke megegyezik a befejező változó, akkor új sor (\ n) jön létre.

$ macskajel.txt
$ awk -v start = 1 -v end = 3 'for (i = kezdet; i<=end;i++) printf("%s%s",
$ i, (i == vég) ? "\ n": OFS) 'jelek.txt

A fenti kimenet a fenti parancsok futtatása után jön létre.

5. példa: Oszloptartomány kinyomtatása egy fájlból egy feltételes utasítás használatával

A következő 'awk' parancs kinyomtatja a fájl első és utolsó oszlopát a for ciklus és az if utasítás használatával. Itt a for ciklus négy lépést tartalmaz. A kezdve és befejező változókat használ a szkript, hogy kihagyja a fájl második és harmadik oszlopát az if feltétel használatával. Az OFS változó az oszlopok közötti szóköz, az ORS változó pedig az új oszlop (\ n) hozzáadására szolgál az utolsó oszlop kinyomtatása után.

$ macskajel.txt
$ awk -v start = 2 -v end = 3 'for (i = 1; i<=NF;i++)
ha (i> = kezdet && i<=end) continue;
else printf ("% s% s", $ i, (i!= NF) ? OFS: ORS) 'jelek.txt

A fenti parancsok futtatása után a következő kimenet jelenik meg. A kimenet az első és az utolsó oszlopot mutatja.txt.

6. példa: Az NF változó segítségével nyomtassa ki az oszlopok tartományát egy fájlból

A következő 'awk' parancs kinyomtatja a fájl első és utolsó oszlopát egy NF változó használatával. Az oszlopértékek kinyomtatásához nem használunk ciklust vagy feltételes utasítást. Az NF a mezők számát jelzi. Négy oszlop van jelölve.txt. Az $ (NF-3) meghatározza az első oszlopot, a $ NF pedig az utolsó oszlopot.

$ macskajel.txt
$ awk 'print $ (NF-3) "" $ NF' jelet.txt

Az alábbi kimenetet a fenti parancsok futtatásával állítják elő. A kimenet az első és az utolsó oszlopot mutatja.txt.

7. példa: Oszloptartomány kinyomtatása egy fájlból az substr () és az index () használatával

Az index () függvény akkor ad vissza pozíciót, ha a második argumentum értéke létezik az első argumentum értékében. Az substr () függvény három argumentumot tartalmazhat. Az első argumentum egy string érték, a második argumentum a kiinduló helyzet, a harmadik argumentum pedig a hossz. Az substr () harmadik argumentuma kihagyásra kerül a következő parancsban. Mivel az oszlop $ 1-től kezdődik az 'awk' parancsban, az index () függvény $ 3-ot ad vissza, és a parancs $ 3-ról $ 4-re nyomtat.

$ macskajel.txt
$ awk 'print substr ($ 0, index ($ 0, $ 3))' jelölés.txt

A fenti kimenet a fenti parancsok futtatásával jön létre.

8. példa: Sorosan nyomtasson egy oszloptartományt egy fájlból a printf segítségével

A következő 'awk' parancs kinyomtatja a jelölések első, második és harmadik oszlopát.txt úgy, hogy elegendő helyet állít be 10 karakter számára.

$ macskajel.txt
$ awk '// printf "% 10s% 10s% 10s \ n", $ 1, $ 3, $ 2' jelölés.txt

A fenti kimenet a fenti parancsok futtatásával jön létre.

Következtetés

Az oszlopok tartományát a parancs kimenetéből vagy egy fájlból különféle módon nyomtathatja ki. Ez az oktatóanyag bemutatja, hogy az 'awk' parancs hogyan segíthet a Linux felhasználóknak a tartalom táblázatos adatokból történő nyomtatásában.

Az FPS növelése Linux alatt?
Az FPS jelentése Képkocka másodpercenként. Az FPS feladata a videolejátszások vagy játékteljesítmények képkockasebességének mérése. Egyszerű szavakkal...
A legnépszerűbb Oculus App Lab játékok
Ha Oculus fülhallgató-tulajdonos, akkor tisztában kell lennie az oldalsó töltéssel. Az oldaltöltés a nem áruházi tartalom fejhallgatóra történő telepí...
A legjobb 10 játék az Ubuntuban
A Windows platform a játékok egyik domináns platformja volt, mivel a játékokat hatalmas százalékban fejlesztik ma a natív Windows támogatására. Kihívh...