Awk

10 lieliski Awk komandu piemēri

10 lieliski Awk komandu piemēri
Awk komanda ir spēcīgs rīks datu apstrādei. Tas iegūst ievades datus, ar tiem manipulē un dod rezultātus standarta izvadā. Faila rindās un kolonnās var veikt dažādas darbības.

Efektīvai datu apstrādei ir ļoti svarīgi zināt komandas “awk” būtisko pamatu, un šis ieraksts aptver komandas “awk” galvenās iezīmes. Vispirms pārbaudīsim sintaksi:

$ awk [opcijas] [fails]

Dažas no visbiežāk izmantotajām opcijām ir norādītas zemāk esošajā tabulā:

Opcija Apraksts
-F Lai norādītu failu atdalītāju
-f Norādiet failu, kurā ir skripts “awk”
-v Lai piešķirtu mainīgo

Apskatīsim dažus piemērus par komandas “awk” lietošanu, un demonstrācijai es esmu izveidojis teksta failu ar nosaukumu testFile.txt:

1. Kā izdrukāt faila kolonnu ar komandu awk?

Komandu “awk” var izmantot, lai iegūtu noteiktu teksta faila kolonnu. Lai izdrukātu faila saturu, izmantojiet:

$ cat testFile.txt

Tagad, lai izdrukātu faila otro kolonnu, izmantojiet:

$ awk 'print $ 2' testFile.txt

Lai izdrukātu vairākus laukus, izmantojiet komandu:

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

Ja jūs neizmantojat komatu “,”, tad izveide būs bez atstarpēm:

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

2. Kā lietot regulāro izteiksmi ar komandu awk:

Lai sakārtotu virknes vai jebkuru izteicienu, mēs izmantojam slīpsvītras “//”, piemēram, ja vēlaties izdrukāt to cilvēku vārdus, kuri studē “Vēsturi”, tad izmantojiet

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

Rezultāts skaidri parāda, ka tikai “Sems” un “Tomijs” mācās “Vēstures” kursu.

3. Kā izmantot relāciju izteiksmi ar komandu “awk”:

Lai saskaņotu konkrēta lauka saturu, var izmantot relāciju izteiksmi. Lai jebkura virkne vai izteiksme tiktu saskaņota ar lauku, norādiet lauku un izmantojiet salīdzināšanas operatoru ~ ar modeli, kā norādīts šajā komandā:

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

Iepriekš minētā izvade parāda katru 2. slejas lauku pret katru lauku, kura 3. slejā ir “is”.

Lai iegūtu pretēju iepriekš minētās komandas iznākumu, izmantojiet “! ~ ”Operators:

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

Salīdzinājumam varam izmantot arī tādus operatorus kā lielāki par “>” un mazāki par “<” and equal “=” as well:

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

Izdevumā ir iespiesti to cilvēku vārdi, kuri ieguvuši vairāk nekā 70 atzīmes.

4. Kā izmantot diapazona modeli ar komandu awk:

Diapazonu var izmantot arī meklēšanai; vienkārši izmantojiet komatu “,”, lai atdalītu diapazonu, kā parādīts zemāk minētajā komandā:

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

Rezultātā tiek parādīti subjekti diapazonā no “Joel” līdz “Marlene” no 2. slejas. Diapazona definēšanai mēs varam izmantot dubulto vienādības zīmi “==”; skatiet piemēru zemāk:

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

Izejā tiek parādīti cilvēku vārdi no 2. kolonnas zīmju diapazonam “70 līdz 80” no 4. kolonnas.

5. Kā apvienot modeli, izmantojot loģisko operatoru:

Loģisko operatoru, piemēram, OR “||,” UN “&&”, izmantošana ļauj kombinēt modeļus meklēšanai. Izmantojiet šādu komandu

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

Iepriekš minētā komanda izdrukā cilvēku vārdus pret ceturto lauku, kas ir nozīmīgāks par 80, un sesto lauku, kas lielāks par 0.4. Nosacījumu izpilda tikai divi ieraksti.

6. AWK komandas īpašie izteicieni:

Ir divi īpaši izteicieni:SĀKT" un "BEIGT”:

SĀKT: Lai veiktu darbību pirms datu apstrādes

END: lai veiktu darbību pēc datu apstrādes

$ awk 'BEGIN print "Apstrāde ir sākusies"; print $ 2; END print “Apstrāde ir beigusies” 'testFile.txt

7. Noderīgs awk komandas iebūvētais mainīgais:

Komandai awk ir dažādi mainīgie, kas palīdz datu apstrādē:

Mainīgs Apraksts
NF Tas norāda datu lauku skaitu
NR Tas norāda pašreizējā ieraksta numuru
FAILA NOSAUKUMS Parāda pašreiz apstrādājamā faila nosaukumu
FS un OFS Lauka atdalītājs un izvades lauka atdalītājs
RS un ORS Atdala ierakstu un izvades ierakstu atdalītāju

Piemēram:

$ awk 'END print "Faila nosaukums ir FILENAME" ir NF lauki un "NR" ieraksti "' testFile.txt

Mēs izmantojam “END”, bet, ja jūs izmantojat “BEGIN”, izvade sniegs 0 laukus un 0 ierakstus.

8. Kā nomainīt ierakstu atdalītāju:

Ieraksta noklusējuma atdalītājs parasti ir atstarpe; ja ir komats “,” vai punkts “.”Kā lauka atdalītāju, pēc tam izmantojiet opciju“ FS ”kopā ar atdalītāju.

Pieņemsim citu failu, kurā datu laukus atdala komatu kols “:”:

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

Tā kā faila atdalītājs ir kols, bet komanda “awk” ir pat izdevīga šādiem failiem, vienkārši izmantojiet opciju “FS”.

“-F” var izmantot arī:

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

Noklusētais ierakstu atdalītājs ir “newline”, un, lai ierakstu atdalītāju iestatītu uz “:”, izmantojiet:

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

9. Awk darbības:

Awk darbības ir mazas programmas, kuras ieskauj iekavas un kurās ir vairāk nekā viens paziņojums, atdalīts ar semikolu “;”.

Visbiežāk lietotais priekšraksts ar komandu “awk” ir priekšraksts “drukāt”. Piemēram, lai izdrukātu tekstu ar katru ierakstu, pēdiņās izmantojiet teksta virkni:

$ awk '“The is a field,” $ 2' testa fails.txt

Veiksim vienkāršu summas operāciju, izmantojot awk:

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

10. Awk programmas izveide:

Sāksim ar “awk” programmēšanu, tālāk sniegtā programmēšana vienkārši veic reizināšanu:

SĀKT
i = 2
kamēr (j<4)

drukāt “2 reizināšana ar” j ”ir“ i * j;
j++

Saglabājiet programmu ar nosaukumu “myCode.awk”Un, lai to palaistu, atveriet termināli un ierakstiet:

$ awk -f myCode.awk

Secinājums:

Komanda “awk” ir ērta komanda, lai apstrādātu, skenētu teksta failu datus, piemēram, atdalītu jebkuru konkrētu faila lauku; mēs izmantojam komandu “awk”. Tas atvieglo teksta failu meklēšanu jebkurā formā vai formā. Šajā ceļvedī mēs saprotam komandas “awk” un tās izmantošanas pamatus. Komanda “awk” pārbauda datus, ģenerē pārskatus un pat parsē failus. Izmantojot vienkāršas komandas “awk”, lietotāji arī var rakstīt sīkas programmas, lai efektīvāk apstrādātu datus.

Populārākās Oculus App Lab spēles
Ja esat Oculus austiņu īpašnieks, jums ir jāsazinās par sānu ielādi. Sānu ielāde ir process, kurā austiņās tiek instalēts saturs, kas nav veikals. Sid...
10 labākās spēles, kuras spēlēt Ubuntu
Windows platforma ir bijusi viena no dominējošajām spēļu platformām, jo ​​mūsdienās tiek attīstīts milzīgs spēļu skaits, lai atbalstītu Windows. Vai k...
5 labākās arkādes spēles Linux
Mūsdienās datori ir nopietnas mašīnas, kuras izmanto spēlēšanai. Ja jūs nevarat iegūt jauno augsto rezultātu, jūs zināt, ko es domāju. Šajā ierakstā j...