Example -1: Változó meghatározása és nyomtatása
Az 'awk' parancs a '-v' opcióval határozza meg a változót. Ebben a példában a myvar változót az 'awk' parancs definiálja az érték tárolására, „AWK változó” hogy később kinyomtatják. A kimenet ellenőrzéséhez futtassa a következő parancsot a terminálról.
$ visszhang | awk -v myvar = 'AWK változó' 'print myvar'Kimenet:
2. példa: Az awk héjváltozó használata egyetlen idézettel és dupla idézettel
A példa bemutatja, hogyan használható a shell változó az 'awk' paranccsal. Itt egy shell változó, myvar értékkel van deklarálva, „Linux Tipp” az első parancsban. A '$' szimbólum egy shell változó nevével együtt használható az érték beolvasására. A második parancs beolvassa a változót, $ myval egyetlen idézettel ('), a harmadik parancs pedig az $ myvar változót kettős idézettel (“) olvassa el az' awk 'utasításban.
$ myvar = "Linux tipp"$ visszhang | awk -v awkvar = '$ myvar' 'print awkvar; '
$ visszhang | awk -v awkvar = "$ myvar" 'print awkvar; '
Kimenet:
A kimeneten látható, hogy a $ myvar értéke nem olvasható, ha egyetlen idézettel (') van csatolva, és a kimenet $ myvar. Az értéke $ myvar kinyomtatásra kerül, ha dupla idézettel van ellátva (“).
3. példa: ARGC változó beolvasása awk-ban
Az ARGC változó a parancssori argumentumok teljes számának számlálására szolgál. Három parancssori argumentumváltozót (t1, t2, t3) adunk át az alábbi awk szkriptben. Itt a szkript argumentumainak száma összesen 4. Futtassa a parancsfájlt a terminálról.
$ awk 'BEGIN print "Összes argumentum =", ARGC' t1 t2 t3Kimenet:
A következő kimenet jelenik meg a szkript futtatása után.
4. példa: A fájl tartalmának olvasása argumentumváltozók szerint
Hozzon létre egy szöveges fájlt vevő.txt a következő tartalommal gyakorolhatja ezt a példát. Itt a fájl minden mezőjét egyetlen választja el fülre tér.
vevő.txt
Azonosító neve103847 John Micheal
209485 Watson
974732 Mira Hossain
Az Awk parancs minden mezőt bármilyen szövegfájlból argumentumváltozókkal olvashat. Két mező van vevő.txt fájl. Ezek az azonosító és a név. A következő szkript ezt a két mezőt argumentumváltozókkal nyomtatja ki, 1 USD és 2 USD kettő elválasztásával fülre szóközök. Futtassa a parancsfájlt a terminálról.
$ macska ügyfél.txt$ macska ügyfél.txt | awk 'print $ 1 "\ t \ t" $ 2;'
Kimenet:
A fenti parancsok futtatása után a következő kimenet jelenik meg.
5. példa: Beépített változó, FS és mezőelválasztó opció használata awk paranccsal
Az FS változót az awk parancsban használjuk mezőelválasztóként. A szóköz az FS alapértelmezett értékeként szerepel. A következő parancs beolvassa a fájlt vevő.txt a szóköz használatával mezőelválasztóként, és nyomtassa ki a fájl tartalmát. Futtassa a parancsot a terminálról.
$ awk FS ügyfél.txtKimenet:
A következő kimenet jelenik meg a szkript futtatása után.
Az Awk parancs más karaktereket is használhat mezőelválasztóként az '-F' opcióval. Hozzon létre egy szöveges fájlt termék.txt a következő tartalommal, ahol a ':' mezőelválasztóként szerepel.
termék.txt
101: Sütemény: 30 USD102: Ceruza: 5 dollár
103: Szappan: 3 USD
104: Sampon: 10 dollár
Három mező van a fájlban, termék.txt amely tartalmazza a termék azonosítóját, nevét és árát. A következő awk parancs minden sornak csak a második mezőjét nyomtatja ki. Futtassa a parancsokat a terminálról.
$ macska termék.txt$ awk -F ':' 'print $ 2' termék.txt
Kimenet:
Itt az első parancs kinyomtatta a tartalmát termék.txt és a második parancs csak a fájl második mezőjét nyomtatta ki.
6. példa: beépített változó használata, NR awk paranccsal
Az NR változót az awk parancsban használják a fájl rekordok vagy sorok teljes számának megszámolására. Hozzon létre egy szöveges fájlt diák.txt ennek a változónak a működését tesztelni.
diák.txt
Név köteg félévJános 20 3
Mira 22 1
Ella 18
Charle 15 8
A következő awk szkript kinyomtatja az első három sort termék.txt fájl. Itt egy feltétel hozzáadódik az NR változó használatával. A parancs kinyomtatja azokat a sorokat, ahol az NR értéke kisebb, mint 4. Futtassa a parancsfájlt a terminálról.
Kimenet:
A következő kimenet jelenik meg a szkript futtatása után.
$ macska tanuló.txt | awk 'NR < 4'
7. példa: Beépített változó használata, NF awk paranccsal
Az NF változót az awk parancsban használjuk, hogy megszámoljuk a fájlok minden egyes sorában található mezők számát. A fájlhoz a következő awk szkriptet kell alkalmazni, diák.txt amely az előző példában jön létre. A szkript kinyomtatja ezeket a sorokat diák.txt fájl, ahol az összes mező kevesebb, mint 3. Futtassa a parancsot a terminálról.
$ macska tanuló.txt | awk 'NF < 3'Kimenet:
Csak egy sor létezik a fájlban, ahol a mezők száma kevesebb, mint 3, amelyet kimenetként nyomtatnak.
8. példa: Beépített OFS változó használata awk paranccsal
Az OFS változót az awk parancsban használják a kimeneti mező elválasztó hozzáadására a kimenetbe. termék.txt fájl ebben a példában az OFS változó használatának bemutatására szolgál. A ':' mezőelválasztóként szolgál a termékben.txt fájl. A következő awk szkript a '->' karaktert használta OFS értékként, és a fájl második és harmadik mezője ennek az elválasztónak a hozzáadásával nyomtat. Futtassa a parancsokat a terminálról.
$ macska termék.txt$ awk -F ':' 'BEGIN OFS = "->"; print $ 2, $ 3;' termék.txt
Kimenet:
A következő kimenet a parancsok futtatása után fog kinyomtatni.
Következtetés:
Az awk változók leggyakoribb felhasználásait ebben az oktatóanyagban próbálják megmagyarázni. Remélem, az olvasó az oktatóanyag gyakorlása után képes lesz megfelelően használni az awk változókat a szkriptben.