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ĀKTi = 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.awkSecinā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.