Awk

10 izjemnih primerov ukazov Awk

10 izjemnih primerov ukazov Awk
Ukaz Awk je močno orodje za obdelavo podatkov. Pridobi vhodne podatke, jih manipulira in daje rezultate v standardnem izhodu. V vrsticah in stolpcih datoteke je mogoče izvajati različne operacije.

Poznavanje osnov ukaza "awk" je zelo pomembno pri učinkoviti obdelavi podatkov in ta prispevek zajema ključne značilnosti ukaza "awk". Najprej preverimo skladnjo:

$ awk [možnosti] [datoteka]

Nekatere najpogosteje uporabljene možnosti so navedene v spodnji tabeli:

Možnost Opis
-F Če želite določiti ločilo datotek
-f Navedite datoteko, ki vsebuje skript »awk«
-v Če želite dodeliti spremenljivko

Oglejmo si nekaj primerov uporabe ukaza "awk", za predstavitev pa sem naredil besedilno datoteko z imenom testFile.txt:

1. Kako natisniti stolpec datoteke z ukazom awk?

Z ukazom "awk" lahko dobite določen stolpec besedilne datoteke. Za tiskanje vsebine datoteke uporabite:

$ cat testFile.txt

Zdaj za tiskanje drugega stolpca datoteke uporabite:

$ awk 'print $ 2' testFile.txt

Če želite natisniti več polj, uporabite ukaz:

$ awk 'print $ 1, $ 2, $ 3' testFile.txt

Če ne uporabite vejice “,”, bo rezultat brez presledkov:

$ awk 'print $ 1 $ 2 $ 3' testFile.txt

2. Kako uporabiti regularni izraz z ukazom awk:

Za ujemanje nizov ali katerega koli izraza na primer uporabljamo poševnice "//", če želimo natisniti imena ljudi, ki preučujejo "Zgodovino", potem uporabite:

$ awk '/ History / print $ 2' testFile.txt

Rezultat jasno kaže, da samo "Sam" in "Tommy" študirata tečaj "Zgodovina".

3. Kako uporabiti relacijski izraz z ukazom "awk":

Za ujemanje z vsebino določenega polja lahko uporabimo relacijski izraz. Če želite ujemati poljuben niz ali izraz s poljem, navedite polje in uporabite operator primerjave »~« z vzorcem, kot je predstavljen v naslednjem ukazu:

$ awk '$ 3 ~ / is / print $ 2' testFile.txt

Zgornji izhod prikazuje vsako polje v stolpcu 2 proti vsakemu polju, ki vsebuje "je" v stolpcu 3.

Če želite dobiti nasprotni izhod zgornjega ukaza, uporabite "! ~ ”Operater:

$ awk '$ 3! ~ / is / print $ 2 'testFile.txt

Za primerjavo lahko uporabimo tudi operatorje, kot so večji od “>” in manjši od “<” and equal “=” as well:

$ awk '$ 4> 70 print $ 2' testFile.txt

V prispevku so bila natisnjena imena ljudi, ki so dobili ocene več kot 70.

4. Kako uporabiti vzorec obsega z ukazom awk:

Za iskanje je mogoče uporabiti tudi obseg; preprosto uporabite vejico “,”, da ločite obseg, kot je predstavljen v spodnjem ukazu:

$ awk '/ Joel /, / Marlene / print $ 3' testFile.txt

Rezultat prikazuje subjekte v razponu od "Joel" do "Marlene" iz stolpca 2. Za določitev obsega lahko uporabimo dvojni enak znak "=="; glej spodnji primer:

$ awk '$ 4 == 80, $ 4 == 90 print $ 0' testFile.txt

V rezultatu so prikazana imena oseb iz stolpca 2 za obseg oznak »70 do 80« iz stolpca 4.

5. Kako združiti vzorec z uporabo logičnega operatorja:

Uporaba logičnih operatorjev, kot sta ALI “||,” IN “&&”, vam omogoča kombiniranje vzorcev za iskanje. Uporabite naslednji ukaz

$ awk '$ 4> 80 && $ 6> 0.4 print $ 2 'testFile.txt

Zgornji ukaz natisne imena ljudi na četrto polje, ki je pomembnejše od 80, in na šesto polje večje od 0.4. In samo dva zapisa izpolnjujeta pogoj.

6. Posebni izrazi ukaza awk:

Obstajata dva posebna izraza, "ZAČETI"In"KONEC":

BEGIN: Za izvedbo dejanja pred obdelavo podatkov

END: za izvedbo dejanja po obdelavi podatkov

$ awk 'BEGIN natisni “Obdelava se je začela”; natisni $ 2; END print «Obdelava se je končala» 'testFile.txt

7. Uporabna vgrajena spremenljivka ukaza awk:

Ukaz awk ima različne spremenljivke, ki pomagajo pri obdelavi podatkov:

Spremenljiv Opis
NF Podaja število polj v podatkih
NR Podaja številko trenutnega zapisa
IME DATOTEKE Prikaže ime datoteke, ki je trenutno v obdelavi
FS in OFS Ločilo polja in izhodno ločilo polja
RS in ORS Loči ločilo zapisov in izhodnih zapisov

Na primer:

$ awk 'END print "Ime datoteke je" FILENAME "vsebuje" NF "polja in" NR "evidence"' testFile.txt

Uporabljamo »END«, če pa uporabljamo »BEGIN«, bo rezultat dal 0 polj in 0 zapisov.

8. Kako spremeniti ločilo zapisov:

Privzeto ločilo v zapisu je običajno presledek; če je vejica “,” ali pika “."Kot ločilo polj, nato skupaj z ločevalnikom uporabite možnost" FS ".

Dajmo še eno datoteko, kjer so podatkovna polja ločena z vejico dvopičjem “:”:

$ cat testFile2.txt
$ awk 'BEGIN FS = “:” print $ 2' testFile2.txt

Ker je ločilo datoteke dvopičje, vendar je ukaz "awk" celo koristen za take datoteke, preprosto uporabite možnost "FS".

Uporabite lahko tudi "-F":

$ awk -F “:” 'print $ 2' testFile2.txt

Privzeto ločilo zapisov je »nova vrstica« in če želite ločilo zapisov nastaviti na »:«, uporabite:

$ awk 'BEGIN RS = “:” print $ 1' testFile2.txt

9. Awk akcije:

Dejanja Awk so majhni programi, ki so obdani z oklepaji »« in imajo več kot en stavek, ločen s podpičji »;«.

Najpogosteje uporabljen stavek z ukazom "awk" je stavek "tiskanje". Če želite na primer natisniti besedilo z vsakim zapisom, uporabite besedilni niz v narekovajih:

$ awk '"The is the field," $ 2' testna datoteka.txt

Izvedimo preprosto operacijo seštevanja z uporabo awk:

$ awk 'sum + = $ 4 END printf “% d \ n”, sum' testFile.txt

10. Ustvarjanje programa awk:

Začnimo s programiranjem "awk", spodaj navedeno programiranje preprosto množi:

ZAČETI
i = 2
medtem ko (j<4)

natisni "Množenje 2 z" j "je" i * j;
j++

Shranite program z imenom »myCode.awk"In ga zaženite, odprite terminal in vnesite:

$ awk -f myCode.awk

Zaključek:

Ukaz "awk" je priročen ukaz za obdelavo, pregledovanje podatkov besedilnih datotek, na primer ločevanje katerega koli določenega polja datoteke; uporabljamo ukaz "awk". Omogoča lažje iskanje v poljubni obliki ali vzorcu iz besedilnih datotek. V tem priročniku razumemo osnove ukaza “awk” in njegovo uporabo. Ukaz "awk" preveri podatke, ustvari poročila in celo razčleni datoteke. Uporaba preprostih ukazov "awk" uporabnikom omogoča tudi pisanje drobnih programov za učinkovitejšo obdelavo podatkov.

Najboljše igre z ročnim sledenjem
Oculus Quest je pred kratkim predstavil odlično idejo ročnega sledenja brez krmilnikov. Z vedno večjim številom iger in dejavnosti, ki izvajajo podpor...
Kako prikazati prekrivanje zaslonskega menija v celozaslonskih aplikacijah in igrah za Linux
Igranje celozaslonskih iger ali uporaba aplikacij v celozaslonskem načinu brez motenj vam lahko odreže ustrezne sistemske informacije, ki so vidne na ...
Top 5 kartic za zajemanje iger
Vsi smo v YouTubu videli in oboževali pretakanje iger. PewDiePie, Jakesepticye in Markiplier so le nekateri izmed najboljših igralcev, ki so zaslužili...