Awk

Kaip naudoti kintamąjį komandoje awk

Kaip naudoti kintamąjį komandoje awk
Kintamieji naudojami bet kuriai reikšmei laikinai išsaugoti bet kuria programavimo kalba.  Kintamojo apibrėžimas komandoje awk yra panašus į bash scenarijų kalbą ir veikia kaip bash, kai apvalkalo kintamasis naudojamas su viena citata ir dviguba citata. „Awk“ komandoje yra daugybė įvairiems tikslams skirtų kintamųjų. Kaip vartotojo apibrėžti, įmontuoti ir apvalkalo kintamieji gali būti naudojami komandoje „awk“, šioje instrukcijoje rodoma naudojant skirtingus pavyzdžius.

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 t3

Iš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 vardas
103847 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.txt

Iš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 USD
102: 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 semestras
Jono 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.

Kaip užfiksuoti ir perduoti savo žaidimų sesiją sistemoje „Linux“
Anksčiau žaidimai buvo laikomi tik pomėgiu, tačiau laikui bėgant lošimų pramonė labai augo technologijų ir žaidėjų skaičiaus atžvilgiu. Žaidimų audito...
Geriausi žaidimai, kuriuos reikia žaisti naudojant rankos stebėjimą
„Oculus Quest“ neseniai pristatė puikią rankos stebėjimo be valdiklių idėją. „Oculus Quest“ rankų sekimo žaidimai iki šiol buvo ribojami, kai žaidimų ...
Kaip rodyti OSD perdangą viso ekrano „Linux“ programose ir žaidimuose
Žaisdami viso ekrano žaidimus arba naudodamiesi programomis be išsiblaškymo viso ekrano režimu, galite nutraukti nuo susijusios sistemos informacijos,...