Example -1: kintamojo apibrėžimas ir spausdinimas
'awk' naudoja kintamojo apibrėžimui parinktį -v. Šiame pavyzdyje myvaras kintamasis yra apibrėžtas komandoje „awk“, kad būtų išsaugota vertė, „AWK kintamasis“ kad atspausdinta vėliau. Paleiskite šią komandą iš terminalo, kad patikrintumėte išvestį.
$ aidas | awk -v myvar = 'AWK kintamasis' 'print myvar'Išvestis:
2 pavyzdys: „shell“ kintamojo naudojimas „awk“ su viena citata ir dviguba citata
Pavyzdys rodo, kaip apvalkalo kintamajam galima naudoti komandą „awk“. Čia apvalkalo kintamasis, myvaras deklaruojama su verte, „Linux“ užuomina pirmoje komandoje. Simbolis „$“ naudojamas su apvalkalo kintamojo vardu nuskaityti vertę. Antroji komanda nuskaito kintamąjį, $ myval su viena citata ('), o trečioji komanda "awk" sakinyje skaito kintamąjį $ myvar su dviguba citata (“).
$ myvar = "Linux patarimas"$ aidas | awk -v awkvar = '$ myvar' 'spausdinti awkvar;
$ aidas | awk -v awkvar = "$ myvar" 'spausdinti awkvar;
Išvestis:
Išvestyje parodyta, kad $ myvar vertės negalima nuskaityti, kai ji yra pridėta vienoje citatoje ('), o išvestis yra $ myvar. Vertė $ myvar atspausdintas, kai jis pridėtas su dviguba kabute (“).
3 pavyzdys: ARGC kintamojo skaitymas awk
ARGC kintamasis naudojamas visam komandinės eilutės argumentų skaičiavimui. Trys komandinės eilutės argumentų kintamieji (t1, t2, t3) perduodami šiame awk scenarijuje. Čia bendras scenarijaus argumentų skaičius yra 4. Paleiskite scenarijų iš terminalo.
$ awk 'BEGIN print "Iš viso argumentų =", ARGC' t1 t2 t3Išvestis:
Ši išvestis pasirodys paleidus scenarijų.
4 pavyzdys: failo turinio skaitymas pagal argumentų kintamuosius
Sukurkite tekstinį failą pavadinimu klientas.txt turintį šį pavyzdį. Čia kiekvienas failo laukas atskiriamas atskiru skirtuką vietos.
klientas.txt
ID vardas103847 Jonas Michealas
209485 Watsonas
974732 Mira Hossain
Komanda „Awk“ gali nuskaityti kiekvieną lauką iš bet kurio teksto failo pagal argumentų kintamuosius. Yra du laukai klientas.txt failą. Tai yra ID ir vardas. Šis scenarijus atspausdins šiuos du laukus pagal argumentų kintamuosius, 1 USD ir 2 USD atskiriant du skirtuką tarpai. Paleiskite scenarijų iš terminalo.
$ katės klientas.txt$ katės klientas.txt | awk 'print $ 1 "\ t \ t" $ 2;'
Išvestis:
Paleidus minėtas komandas pasirodys toks išvestis.
5 pavyzdys: naudojant įmontuotą kintamąjį, FS ir lauko separatoriaus parinktį su awk komanda
FS kintamasis naudojamas komandoje awk kaip lauko skyriklis. Erdvė naudojama kaip numatytoji FS reikšmė. Ši komanda nuskaitys failą klientas.txt naudodami tarpą kaip lauko skyriklį ir atspausdinkite failo turinį. Vykdykite komandą iš terminalo.
$ awk FS klientas.txtIšvestis:
Ši išvestis pasirodys paleidus scenarijų.
„Awk“ komanda gali naudoti kitus simbolius kaip lauko skyriklį naudodama parinktį „-F“. Sukurkite tekstinį failą pavadinimu produktas.txt kurio turinys yra „:“ naudojamas kaip lauko skiriamasis elementas.
produktas.txt
101: pyragas: 30 USD102: Pieštukas: 5 USD
103: muilas: 3 USD
104: šampūnas: 10 USD
Faile yra trys laukai, produktas.txt kuriame yra produkto ID, pavadinimas ir kaina. Ši komanda awk atspausdins tik antrą kiekvienos eilutės lauką. Vykdykite komandas iš terminalo.
$ katės produktas.txt$ awk -F ':' 'print $ 2' produktas.txt
Išvestis:
Čia pirmoji komanda išspausdino produktas.txt o antroji komanda atspausdino tik antrąjį failo lauką.
6 pavyzdys: naudojant įmontuotą kintamąjį, NR su awk komanda
NR kintamasis naudojamas komandoje awk suskaičiuoti bendrą failo įrašų ar eilučių skaičių. Sukurkite tekstinį failą pavadinimu studentas.txt išbandyti šio kintamojo funkciją.
studentas.txt
Pavadinimas partijos semestrasJono 20 3
Mira 22 1
Ella 18
Charle 15 8
Šis awk scenarijus atspausdins pirmąsias tris eilutes produktas.txt failą. Čia sąlyga pridedama naudojant NR kintamąjį. Komanda atspausdins tas eilutes, kuriose NR vertė yra mažesnė nei 4. Paleiskite scenarijų iš terminalo.
Išvestis:
Ši išvestis pasirodys paleidus scenarijų.
$ kačių studentas.txt | awk 'NR < 4'
7 pavyzdys: naudojant įmontuotą kintamąjį, NF su awk komanda
NF kintamasis naudojamas komandoje awk skaičiuoti bendrą laukų skaičių kiekvienoje failo eilutėje. Failui taikomas šis awk scenarijus, studentas.txt kuri sukurta ankstesniame pavyzdyje. Scenarijus atspausdins tas eilutes iš studentas.txt failas, kuriame bendras laukų skaičius yra mažesnis nei 3. Vykdykite komandą iš terminalo.
$ kačių studentas.txt | awk 'NF < 3'Išvestis:
Faile yra tik viena eilutė, kurioje bendras laukų skaičius yra mažesnis nei 3, kurie spausdinami kaip išvestis.
8 pavyzdys: naudojant įmontuotą kintamąjį OFS su komanda awk
OFS kintamasis naudojamas komandoje awk, norint išvestyje pridėti išvesties lauko skyriklį. produktas.txt failas šiame pavyzdyje naudojamas norint parodyti OFS kintamojo naudojimą. ':' yra naudojamas kaip lauko separatorius gaminyje.txt failas. Šis awk scenarijus naudojo „->“ kaip OFS reikšmę, o antrasis ir trečiasis failo laukai bus spausdinami pridedant šį skyriklį. Vykdykite komandas iš terminalo.
$ katės produktas.txt$ awk -F ':' 'BEGIN OFS = "->"; print $ 2, $ 3;' produktas.txt
Išvestis:
Ši išvestis bus atspausdinta paleidus komandas.
Išvada:
Šioje pamokoje bandoma paaiškinti dažniausiai naudojamus „awk“ kintamuosius. Tikiuosi, kad skaitytojas, naudodamasis šia pamoka, galės tinkamai naudoti scenarijuje „awk“ kintamuosius.