Awk

10 izvrsnih primjera naredbe Awk

10 izvrsnih primjera naredbe Awk
Naredba Awk moćan je alat za obradu podataka. Dobija ulazne podatke, manipulira njima i daje rezultate u standardnom izlazu. Na redovima i stupcima datoteke mogu se izvoditi razne operacije.

Poznavanje osnova naredbe "awk" vrlo je važno kada je u pitanju učinkovita obrada podataka, a ovaj članak pokriva ključne značajke naredbe "awk". Prvo provjerimo sintaksu:

$ awk [opcije] [datoteka]

Neke od najčešće korištenih opcija date su u donjoj tablici:

Opcija Opis
-F Da biste odredili separator datoteke
-f Navedite datoteku koja sadrži skriptu "awk"
-v Dodijeliti varijablu

Pogledajmo nekoliko primjera upotrebe naredbe "awk", a za demonstraciju sam napravio tekstualnu datoteku s imenom testFile.txt:

1. Kako ispisati stupac datoteke naredbom awk?

Naredba "awk" može se koristiti za dobivanje određenog stupca tekstualne datoteke. Za ispis sadržaja datoteke upotrijebite:

$ mačka testFile.txt

Sada, za ispis drugog stupca datoteke, upotrijebite:

$ awk 'print $ 2' testFile.txt

Da biste ispisali više polja, upotrijebite naredbu:

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

Ako ne koristite zarez ",", izlaz će biti bez razmaka:

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

2. Kako koristiti regularni izraz s naredbom awk:

Da bismo podudarali nizove ili bilo koji izraz, koristimo kose crte "//", na primjer, ako želite ispisati imena ljudi koji proučavaju "Povijest", tada upotrijebite:

$ awk '/ Povijest / ispis $ 2' testFile.txt

Rezultat jasno pokazuje da samo "Sam" i "Tommy" proučavaju tečaj "Povijest".

3. Kako se koristi relacijski izraz s naredbom "awk":

Da bi se podudarao sa sadržajem određenog polja, može se koristiti relacijski izraz. Za podudaranje bilo kojeg niza ili izraza s poljem, naznačite polje i upotrijebite operator usporedbe “~” s uzorkom kako je prikazano u sljedećoj naredbi:

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

Gornji izlaz prikazuje svako polje u stupcu 2 u odnosu na svako polje koje sadrži "je" u stupcu 3.

Da biste dobili suprotni izlaz gore navedene naredbe, upotrijebite "! ~ ”Operator:

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

Za usporedbu, možemo koristiti i operatore veće od “>” i manje od “<” and equal “=” as well:

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

U izdanju su ispisana imena ljudi koji su dobili ocjene više od 70.

4. Kako se koristi obrazac raspona s naredbom awk:

Raspon se također može koristiti za pretraživanje; jednostavno zarezom "," razdvojite raspon kako je prikazano u dolje spomenutoj naredbi:

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

Izlaz prikazuje subjekte u rasponu od "Joel" do "Marlene" iz stupca 2. Znak dvostruke jednakosti "==" možemo koristiti za definiranje raspona; pogledajte primjer u nastavku:

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

Izlaz prikazuje imena ljudi iz stupca 2 za raspon oznaka "70 do 80" iz stupca 4.

5. Kako kombinirati obrazac pomoću logičkog operatora:

Korištenje logičkih operatora poput OR “||,” I “&&” omogućuje vam kombiniranje uzoraka za pretraživanje. Upotrijebite sljedeću naredbu

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

Gornja naredba ispisuje imena ljudi na četvrto polje značajnije od 80 i šesto polje veće od 0.4. I samo dva zapisa ispunjavaju uvjet.

6. Posebni izrazi naredbe awk:

Postoje dva posebna izraza, "POČETI"I"KRAJ”:

POČETAK: Izvršiti radnju prije obrade podataka

END: Za izvođenje radnje nakon obrade podataka

$ awk 'BEGIN ispis “Obrada je započela”; ispis $ 2; END print "Obrada je završena" 'testFile.txt

7. Korisna ugrađena varijabla naredbe awk:

Naredba awk ima razne varijable koje pomažu u obradi podataka:

Promjenjiva Opis
NF Daje broj polja u podacima
NR Daje broj trenutnog zapisa
NAZIV DATOTEKE Prikazuje ime datoteke koja se trenutno obrađuje
FS i OFS Separator polja i izlazni Separator polja
RS i ORS Odvaja separator zapisa i izlaznog zapisa

Na primjer:

$ awk 'END print "Naziv datoteke je" FILENAME "ima" NF "polja i" NR "zapise"' testFile.txt

Koristimo "END", ali ako koristite "BEGIN", izlaz će dati 0 polja i 0 zapisa.

8. Kako promijeniti separator zapisa:

Zadani separator u zapisu obično je razmak; ako postoji zarez "," ili točka "."Kao separator polja, zatim upotrijebite opciju" FS "zajedno s separatorom.

Imajmo još jednu datoteku u kojoj su podatkovna polja odvojena zarezom dvotočke:::

$ mačka testFile2.txt
$ awk 'BEGIN FS = “:” print $ 2' testFile2.txt

Budući da je separator datoteke dvotačka, ali naredba "awk" čak korisna za ovakve datoteke, jednostavno upotrijebite opciju "FS".

"-F" se također može koristiti:

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

Zadani je separator zapisa "nova linija", a da biste postavili separator zapisa na ":", upotrijebite:

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

9. Awk akcije:

Awk akcije su maleni programi koji su okruženi zagradama "" i imaju više od jednog izraza odvojenog zarezom ";".

Najčešće korištena naredba s naredbom "awk" je izjava "ispis". Na primjer, za ispis teksta sa svakim zapisom koristite tekstualni niz u navodnicima:

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

Izvedimo jednostavnu operaciju zbrajanja koristeći awk:

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

10. Izrada awk programa:

Počnimo s "awk" programiranjem, programirani u nastavku daju množenje:

POČINI
i = 2
dok (j<4)

ispisati "Množenje 2 s" j "je" i * j;
j++

Spremite program pod nazivom „myCode.awk"I da biste ga pokrenuli, otvorite terminal i upišite:

$ awk -f myCode.awk

Zaključak:

Naredba "awk" korisna je naredba za obradu, skeniranje podataka tekstualnih datoteka, poput odvajanja bilo kojeg određenog polja datoteke; koristimo naredbu "awk". Olakšava pretraživanje bilo čega u bilo kojem obliku ili uzorku iz tekstualnih datoteka. U ovom vodiču razumijemo osnove naredbe "awk" i njezinu upotrebu. Naredba "awk" provjerava podatke, generira izvješća, pa čak i raščlanjuje datoteke. Upotreba jednostavnih naredbi "awk" također omogućava korisnicima da napišu male programe za učinkovitiju obradu podataka.

Kako snimiti i struji svoju igraću sesiju na Linuxu
U prošlosti se igranje igara smatralo samo hobijem, ali s vremenom je igračka industrija zabilježila ogroman rast u pogledu tehnologije i broja igrača...
Najbolje igre za ručno praćenje
Oculus Quest nedavno je predstavio sjajnu ideju ručnog praćenja bez kontrolera. Sa sve većim brojem igara i aktivnosti koje izvršavaju podršku bilo fo...
Kako prikazati OSD prekrivač u aplikacijama i igrama na cijelom zaslonu za Linux
Igranje igara preko cijelog zaslona ili upotreba aplikacija u režimu preko cijelog zaslona bez ometanja može vas odsjeći od relevantnih informacija o ...