A-Z Komandas

40 Praktiska un noderīga awk komanda Linux un BSD

40 Practical Useful Awk Command Linux

Mājas A-Z komandas 40 Praktiska un noderīga awk komanda Linux un BSD AutorsMehedi Hasan InA-Z komandasPiedāvātie 1271 7

SATURS

  1. Izpratne par AWK programmām
  2. Praktiski awk komandu piemēri Linux
    1. 1. Izdrukājiet specifiskus laukus no teksta izvades
    2. 2. Drukājiet vairākus laukus no teksta izvades
    3. 3. Izmantojiet BEGIN paziņojumus
    4. 4. Izmantojiet END paziņojumus
    5. 5. Meklēšana, izmantojot modeļus
    6. 6. Izņemiet informāciju no failiem
    7. 7. Izlasiet AWK skriptu no avota faila
    8. 8. Iestatiet ievades lauka atdalītāju
    9. 9. Drukāt informāciju, pamatojoties uz stāvokli
    10. 10. Drukājiet informāciju, salīdzinot regulārās izteiksmes
    11. 11. Saskaitiet kopējo ievadīto rindu skaitu
    12. 12. Iestatiet izvades lauka atdalītāju
    13. 13. If Construct izmantošana
    14. 14. If-Else Constructs izmantošana
    15. 15. Iestatiet lauka platumu
    16. 16. Iestatiet ierakstu atdalītāju
    17. 17. Drukas vides mainīgie
    18. 18. Izlaist dažus laukus no izvades
    19. 19. Noņemiet tukšās līnijas
    20. 20. Noņemiet beigu atstarpes
    21. 21. Pārbaudiet lauku skaitu katrā rindā
    22. 22. Pārbaudiet pašreizējo faila nosaukumu
    23. 23. Pārbaudiet apstrādāto ierakstu skaitu
    24. 24. Izdrukājiet ierakstu kopējo rakstzīmju skaitu
    25. 25. Izdrukājiet visas līnijas ilgāk par noteikto garumu
    26. 26. Izdrukājiet rindu, rakstzīmju un vārdu skaitu
    27. 27. Aprēķiniet vārdu biežumu
    28. 28. Pārdēvēt failus, izmantojot AWK
    29. 29. Izdrukājiet skaitļa kvadrātsakni
    30. 30. Izdrukājiet skaitļa logaritmu
    31. 31. Izdrukājiet skaitļa eksponenciālu
    32. 32. Izveidojiet nejaušus skaitļus, izmantojot AWK
    33. 33. Krāsu sastādītāja brīdinājumi sarkanā krāsā
    34. 34. Izdrukājiet failu sistēmas UUID informāciju
    35. 35. Izdrukājiet Linux kodola attēla versiju
    36. 36. Pievienojiet rindu numurus pirms rindām
    37. 37. Izdrukājiet failu pēc satura kārtošanas
    38. 38. Izdrukājiet rokasgrāmatas lapu
    39. 39. Izdrukājiet palīdzības lapu
    40. 40. Informācija par drukas versiju
  3. Beigu domas

AWK ir spēcīga> pilnvērtīga programmēšanas valoda . AWK savu nosaukumu ieguvis no tā autoru iniciāļiem - Aho, Veinbergera un Kernighana. Komanda awk Linux un citās Unix sistēmās izsauc tulku, kas palaiž AWK skriptus. Nesenās sistēmās pastāv vairākas awk ieviešanas, piemēram, gawk (GNU awk), mawk (Minimal awk) un nawk (New awk). Apskatiet tālāk sniegtos piemērus, ja vēlaties apgūt awk.





Izpratne par AWK programmām


Programmas, kas rakstītas awk, sastāv no noteikumiem, kas ir vienkārši modeļu un darbību pāris. Modeļi ir sagrupēti iekavās {}, un darbības daļa tiek aktivizēta ikreiz, kad awk atrod tekstam atbilstošus tekstus. Lai gan awk tika izstrādāts vienas līnijas rakstīšanai, pieredzējuši lietotāji ar to var viegli rakstīt sarežģītus skriptus.

awk komanda Linux





AWK programmas ir ļoti noderīgas liela mēroga failu apstrādei. Tas identificē teksta laukus, izmantojot speciālās rakstzīmes un atdalītājus. Tā piedāvā arī augsta līmeņa programmēšanas konstrukcijas, piemēram, masīvus un cilpas. Tāpēc ir ļoti iespējams rakstīt stabilas programmas, izmantojot vienkāršu awk.

Praktiski awk komandu piemēri Linux


Administratori parasti izmanto awk datu iegūšanai un ziņošanai kopā ar cita veida failu manipulācijām. Zemāk mēs detalizētāk apspriedām awk. Rūpīgi izpildiet komandas un izmēģiniet tās savā terminālī, lai iegūtu pilnīgu izpratni.



1. Izdrukājiet specifiskus laukus no teksta izvades


Visvairāk plaši izmantotas Linux komandas parādīt savus rezultātus, izmantojot dažādus laukus. Parasti mēs izmantojam Linux izgriešanas komandu, lai no šādiem datiem iegūtu noteiktu lauku. Tomēr zemāk esošā komanda parāda, kā to izdarīt, izmantojot komandu awk.

$ who | awk '{print }'

Šī komanda parādīs tikai pirmo lauku no komandas who izvades. Tātad jūs vienkārši iegūsit visu pašlaik reģistrēto lietotāju lietotājvārdus. Šeit, $ 1 apzīmē pirmo lauku. Jums ir jāizmanto $ N ja vēlaties iegūt N-to lauku.

2. Drukājiet vairākus laukus no teksta izvades


Awk tulks ļauj mums izdrukāt vēlamo lauku skaitu. Tālāk sniegtajos piemēros ir parādīts, kā iegūt pirmos divus laukus no komandas who izvades.

$ who | awk '{print , }'

Varat arī kontrolēt izvades lauku secību. Šajā piemērā vispirms tiek parādīta otrā sleja, ko izveidojusi komanda who, un pēc tam pirmā kolonna otrajā laukā.

$ who | awk '{print , }'

Vienkārši atstājiet laukā parametrus ( $ N ), lai parādītu visus datus.

3. Izmantojiet BEGIN paziņojumus


BEGIN paziņojums ļauj lietotājiem izvadē izdrukāt zināmu informāciju. To parasti izmanto awk ģenerēto izejas datu formatēšanai. Šī paziņojuma sintakse ir parādīta zemāk.

BEGIN { Actions} {ACTION}

Darbības, kas veido sadaļu SĀKT, vienmēr tiek aktivizētas. Tad awk izlasa atlikušās rindas pa vienai un redz, vai kaut kas ir jādara.

$ who | awk 'BEGIN {print 'User	From'} {print , }'

Iepriekš minētā komanda iezīmēs divus izvades laukus, kas iegūti no komandas izvades.

4. Izmantojiet END paziņojumus


Varat arī izmantot paziņojumu END, lai pārliecinātos, ka noteiktas darbības vienmēr tiek veiktas jūsu darbības beigās. Vienkārši ievietojiet sadaļu END pēc galvenā darbību kopuma.

$ who | awk 'BEGIN {print 'User	From'} {print , } END {print '--COMPLETED--'}'

Iepriekš minētā komanda pievienos norādīto virkni izvades beigās.

5. Meklēšana, izmantojot modeļus


Liela daļa awk darbu ir saistīta ar modeļu saskaņošanu un regulāro izteiksmi. Kā mēs jau esam apsprieduši, awk meklē modeļus katrā ievades rindā un veic darbību tikai tad, kad tiek aktivizēta atbilstība. Mūsu iepriekšējie noteikumi sastāvēja tikai no darbībām. Zemāk mēs esam ilustrējuši modeļu atbilstības pamatus, izmantojot Linux komandu awk.

$ who | awk '/mary/ {print}'

Šī komanda redzēs, vai lietotājs Marija pašlaik ir pieteicies vai nē. Ja tiks atrasta atbilstība, tā izvadīs visu rindu.

6. Izņemiet informāciju no failiem


Komanda awk ļoti labi darbojas ar failiem, un to var izmantot sarežģītiem failu apstrādes uzdevumiem. Šī komanda parāda, kā awk apstrādā failus.

$ awk '/hello/ {print}' /usr/share/dict/american-english

Šī komanda meklē modeli “sveiki” amerikāņu-angļu vārdnīcas failā. Tas ir pieejams lielākajā daļā Linux balstītas izplatīšanas . Tādējādi šajā failā varat viegli izmēģināt awk programmas.

awk modeļa meklēšana

7. Izlasiet AWK skriptu no avota faila


Lai gan viena līnija programmu rakstīšana ir noderīga, jūs varat arī rakstīt lielas programmas, pilnībā izmantojot awk. Jūs vēlaties tos saglabāt un palaist programmu, izmantojot avota failu.

$ awk -f script-file $ awk --file script-file

The -f vai - fails opcija ļauj mums norādīt programmas failu. Tomēr jums nav jāizmanto pēdiņas (‘’) skripta faila iekšienē, jo Linux apvalks šādā veidā neskaidros programmas kodu.

8. Iestatiet ievades lauka atdalītāju


Lauku atdalītājs ir norobežotājs, kas sadala ievades ierakstu. Mēs varam viegli norādīt lauku atdalītājus awk, izmantojot -F vai -lauku atdalītājs iespēja. Pārbaudiet zemāk esošās komandas, lai redzētu, kā tas darbojas.

$ echo 'This-is-a-simple-example' | awk -F - ' {print } ' $ echo 'This-is-a-simple-example' | awk --field-separator - ' {print } '

Tas darbojas vienādi, ja Linux izmanto skripta failus, nevis vienu līniju awk komandu.

9. Drukāt informāciju, pamatojoties uz stāvokli


Esam apsprieduši Linux izgriešanas komanda iepriekšējā ceļvedī. Tagad mēs parādīsim, kā iegūt informāciju, izmantojot awk, tikai tad, ja ir noteikti kritēriji. Mēs izmantosim to pašu testa failu, ko izmantojām šajā rokasgrāmatā. Tāpēc dodieties tur un izveidojiet kopiju test.txt failu.

$ awk ' > 50' test.txt

Šī komanda izdrukās visas valstis no faila test.txt, kurā ir vairāk nekā 50 miljoni iedzīvotāju.

10. Drukājiet informāciju, salīdzinot regulārās izteiksmes


Šī awk komanda pārbauda, ​​vai jebkuras rindas trešais lauks satur rakstu “Lira”, un, ja tiek atrasta atbilstība, izdrukā visu rindu. Mēs atkal izmantojam failu test.txt, ko izmanto, lai ilustrētu Linux izgriešanas komanda . Tāpēc pirms turpināt, pārliecinieties, vai esat ieguvis šo failu.

$ awk ' ~ /Lira/' test.txt

Ja vēlaties, varat drukāt tikai noteiktu daļu no jebkuras spēles.

11. Saskaitiet kopējo ievadīto rindu skaitu


Komandai awk ir daudz speciālu mainīgo, kas ļauj mums viegli veikt daudzas uzlabotas lietas. Viens no šādiem mainīgajiem ir NR, kas satur pašreizējo rindas numuru.

$ awk 'END {print NR} ' test.txt

Šī komanda izvadīs, cik rindu ir mūsu failā test.txt. Tas vispirms atkārtojas pa katru rindu, un, kad tas ir sasniedzis END, tas izdrukās NR vērtību, kas šajā gadījumā satur kopējo rindu skaitu.

12. Iestatiet izvades lauka atdalītāju


Iepriekš mēs esam parādījuši, kā atlasīt ievades lauku atdalītājus, izmantojot -F vai -lauku atdalītājs iespēja. Komanda awk arī ļauj mums norādīt izvades lauku atdalītāju. Zemāk redzamais piemērs to parāda, izmantojot praktisku piemēru.

$ date | awk 'OFS='-' {print,,}'

Šī komanda izdrukā pašreizējo datumu, izmantojot formātu dd-mm-yy. Palaidiet datuma programmu bez awk, lai redzētu, kā izskatās noklusējuma izvade.

13. If Construct izmantošana


Tāpat kā citi populāras programmēšanas valodas , awk arī nodrošina lietotājus ar if-else konstrukcijām. Ja paziņojumam awk ir šāda sintakse.

if (expression) { first_action second_action }

Atbilstošās darbības tiek veiktas tikai tad, ja nosacījuma izteiksme ir patiesa. Zemāk redzamais piemērs to parāda, izmantojot mūsu atsauces failu test.txt .

$ awk '{ if (>100) print }' test.txt

Jums nav stingri jāuztur ievilkums.

14. If-Else Constructs izmantošana


Izmantojot zemāk esošo sintaksi, varat izveidot noderīgas trepes. Tie ir noderīgi, izstrādājot sarežģītus awk skriptus, kas attiecas uz dinamiskiem datiem.

if (expression) first_action else second_action
$ awk '{ if (>100) print; else print }' test.txt

Iepriekš minētā komanda drukās visu atsauces failu, jo ceturtais lauks katrai rindai nav lielāks par 100.

15. Iestatiet lauka platumu


Dažreiz ievades dati ir diezgan netīri, un lietotājiem var būt grūti tos vizualizēt savos pārskatos. Par laimi, awk nodrošina jaudīgu iebūvētu mainīgo FIELDWIDTHS, kas ļauj mums definēt ar atstarpēm atdalītu platumu sarakstu.

ko excel nozīmē tips
$ echo 5675784464657 | awk 'BEGIN {FIELDWIDTHS= '3 4 5'} {print , , }'

Tas ir ļoti noderīgi, analizējot izkliedētos datus, jo mēs varam kontrolēt izvades lauka platumu tieši tā, kā vēlamies.

lauka platums awk

16. Iestatiet ierakstu atdalītāju


RS vai ierakstu atdalītājs ir vēl viens iebūvēts mainīgais, kas ļauj mums norādīt, kā ieraksti tiek atdalīti. Vispirms izveidosim failu, kas parādīs šī awk mainīgā darbību.

$ cat new.txt Melinda James 23 New Hampshire (222) 466-1234 Daniel James 99 Phonenix Road (322) 677-3412
$ awk 'BEGIN{FS='
'; RS=''} {print ,}' new.txt

Šī komanda parsēs dokumentu un izslēgs abu personu vārdu un adresi.

17. Drukas vides mainīgie


Komanda awk Linux ļauj mums viegli izdrukāt vides mainīgos, izmantojot mainīgo ENVIRON. Zemāk esošā komanda parāda, kā to izmantot, lai izdrukātu mainīgā PATH saturu.

$ awk 'BEGIN{ print ENVIRON['PATH'] }'

Varat izdrukāt jebkura vides mainīgā saturu, aizstājot mainīgā ENVIRON argumentu. Zemāk esošā komanda izdrukā vides mainīgā HOME vērtību.

$ awk 'BEGIN{ print ENVIRON['HOME'] }'

18. Izlaist dažus laukus no izvades


Komanda awk ļauj mums izlaist noteiktas rindas no mūsu izvades. Šī komanda to parādīs, izmantojot mūsu atsauces failu test.txt .

$ awk -F':' '{=''; print}' test.txt

Šī komanda izlaidīs mūsu faila otro kolonnu, kurā ir katras valsts galvaspilsētas nosaukums. Varat arī izlaist vairākus laukus, kā parādīts nākamajā komandā.

$ awk -F':' '{='';='';print}' test.txt

19. Noņemiet tukšās līnijas


Dažreiz dati var saturēt pārāk daudz tukšu rindu. Jūs varat izmantot komandu awk, lai diezgan viegli noņemtu tukšās rindas. Pārbaudiet nākamo komandu, lai redzētu, kā tas darbojas praksē.

$ awk '/^[ 	]*$/{next}{print}' new.txt

Mēs esam noņēmuši visas tukšās rindas no faila new.txt, izmantojot vienkāršu regulāro izteiksmi un iebūvēto awk, ko sauc par nākamo.

20. Noņemiet beigu atstarpes


Daudzu Linux komandu izvade satur beigu atstarpes. Mēs varam izmantot komandu awk operētājsistēmā Linux, lai noņemtu tādas atstarpes kā atstarpes un cilnes. Pārbaudiet zemāk esošo komandu, lai uzzinātu, kā risināt šādas problēmas, izmantojot awk.

$ awk '{sub(/[ 	]*$/, '');print}' new.txt test.txt

Pievienojiet mūsu atsauces failiem dažas atstarpes un pārbaudiet, vai awk tās ir veiksmīgi noņemtas. Tas manā mašīnā to izdarīja veiksmīgi.

21. Pārbaudiet lauku skaitu katrā rindā


Mēs varam viegli pārbaudīt, cik lauku ir rindā, izmantojot vienkāršu awk one-liner. Ir daudz veidu, kā to izdarīt, taču šim uzdevumam mēs izmantosim dažus no awk iebūvētajiem mainīgajiem. Mainīgais NR dod mums rindas numuru, un NF mainīgais nodrošina lauku skaitu.

$ awk '{print NR,'-->',NF}' test.txt

Tagad mēs varam apstiprināt, cik daudz lauku ir katrā rindā test.txt dokuments. Tā kā katra šī faila rinda satur 5 laukus, mēs esam pārliecināti, ka komanda darbojas, kā paredzēts.

22. Pārbaudiet pašreizējo faila nosaukumu


Awk mainīgais FILENAME tiek izmantots pašreizējā ievades faila nosaukuma pārbaudei. Mēs demonstrējam, kā tas darbojas, izmantojot vienkāršu piemēru. Tomēr tas var būt noderīgi situācijās, kad faila nosaukums nav skaidri zināms vai ja ir vairāk nekā viens ievades fails.

$ awk '{print FILENAME}' test.txt $ awk '{print FILENAME}' test.txt new.txt

Iepriekš minētās komandas izdrukā faila nosaukumu awk, ar kuru strādā, katru reizi, kad tiek apstrādāta jauna ievades failu rinda.

23. Pārbaudiet apstrādāto ierakstu skaitu


Šis piemērs parādīs, kā mēs varam pārbaudīt ierakstu skaitu, ko apstrādā komanda awk. Tā kā liels skaits Linux sistēmas administratoru pārskatu ģenerēšanai izmanto awk, tas viņiem ir ļoti noderīgi.

$ awk '{print 'Processing Record - ',NR;} END {print '
Total Records Processed:', NR;}' test.txt

Es bieži izmantoju šo awk fragmentu, lai iegūtu skaidru pārskatu par savām darbībām. Jūs varat to viegli pielāgot, lai pielāgotos jaunām idejām vai darbībām.

apstrādāto rindu skaits awk

24. Izdrukājiet ierakstu kopējo rakstzīmju skaitu


Awk valoda nodrošina ērtu funkciju garums (), kas norāda, cik rakstzīmju ir ierakstā. Tas ir ļoti noderīgi vairākos scenārijos. Ātri apskatiet šo piemēru, lai redzētu, kā tas darbojas.

$ echo 'A random text string...' | awk '{ print length(
Mājas A-Z komandas 40 Praktiska un noderīga awk komanda Linux un BSD AutorsMehedi Hasan InA-Z komandasPiedāvātie 1271 7

SATURS

  1. Izpratne par AWK programmām
  2. Praktiski awk komandu piemēri Linux
    1. 1. Izdrukājiet specifiskus laukus no teksta izvades
    2. 2. Drukājiet vairākus laukus no teksta izvades
    3. 3. Izmantojiet BEGIN paziņojumus
    4. 4. Izmantojiet END paziņojumus
    5. 5. Meklēšana, izmantojot modeļus
    6. 6. Izņemiet informāciju no failiem
    7. 7. Izlasiet AWK skriptu no avota faila
    8. 8. Iestatiet ievades lauka atdalītāju
    9. 9. Drukāt informāciju, pamatojoties uz stāvokli
    10. 10. Drukājiet informāciju, salīdzinot regulārās izteiksmes
    11. 11. Saskaitiet kopējo ievadīto rindu skaitu
    12. 12. Iestatiet izvades lauka atdalītāju
    13. 13. If Construct izmantošana
    14. 14. If-Else Constructs izmantošana
    15. 15. Iestatiet lauka platumu
    16. 16. Iestatiet ierakstu atdalītāju
    17. 17. Drukas vides mainīgie
    18. 18. Izlaist dažus laukus no izvades
    19. 19. Noņemiet tukšās līnijas
    20. 20. Noņemiet beigu atstarpes
    21. 21. Pārbaudiet lauku skaitu katrā rindā
    22. 22. Pārbaudiet pašreizējo faila nosaukumu
    23. 23. Pārbaudiet apstrādāto ierakstu skaitu
    24. 24. Izdrukājiet ierakstu kopējo rakstzīmju skaitu
    25. 25. Izdrukājiet visas līnijas ilgāk par noteikto garumu
    26. 26. Izdrukājiet rindu, rakstzīmju un vārdu skaitu
    27. 27. Aprēķiniet vārdu biežumu
    28. 28. Pārdēvēt failus, izmantojot AWK
    29. 29. Izdrukājiet skaitļa kvadrātsakni
    30. 30. Izdrukājiet skaitļa logaritmu
    31. 31. Izdrukājiet skaitļa eksponenciālu
    32. 32. Izveidojiet nejaušus skaitļus, izmantojot AWK
    33. 33. Krāsu sastādītāja brīdinājumi sarkanā krāsā
    34. 34. Izdrukājiet failu sistēmas UUID informāciju
    35. 35. Izdrukājiet Linux kodola attēla versiju
    36. 36. Pievienojiet rindu numurus pirms rindām
    37. 37. Izdrukājiet failu pēc satura kārtošanas
    38. 38. Izdrukājiet rokasgrāmatas lapu
    39. 39. Izdrukājiet palīdzības lapu
    40. 40. Informācija par drukas versiju
  3. Beigu domas

AWK ir spēcīga> pilnvērtīga programmēšanas valoda . AWK savu nosaukumu ieguvis no tā autoru iniciāļiem - Aho, Veinbergera un Kernighana. Komanda awk Linux un citās Unix sistēmās izsauc tulku, kas palaiž AWK skriptus. Nesenās sistēmās pastāv vairākas awk ieviešanas, piemēram, gawk (GNU awk), mawk (Minimal awk) un nawk (New awk). Apskatiet tālāk sniegtos piemērus, ja vēlaties apgūt awk.

Izpratne par AWK programmām


Programmas, kas rakstītas awk, sastāv no noteikumiem, kas ir vienkārši modeļu un darbību pāris. Modeļi ir sagrupēti iekavās {}, un darbības daļa tiek aktivizēta ikreiz, kad awk atrod tekstam atbilstošus tekstus. Lai gan awk tika izstrādāts vienas līnijas rakstīšanai, pieredzējuši lietotāji ar to var viegli rakstīt sarežģītus skriptus.

awk komanda Linux

AWK programmas ir ļoti noderīgas liela mēroga failu apstrādei. Tas identificē teksta laukus, izmantojot speciālās rakstzīmes un atdalītājus. Tā piedāvā arī augsta līmeņa programmēšanas konstrukcijas, piemēram, masīvus un cilpas. Tāpēc ir ļoti iespējams rakstīt stabilas programmas, izmantojot vienkāršu awk.

Praktiski awk komandu piemēri Linux


Administratori parasti izmanto awk datu iegūšanai un ziņošanai kopā ar cita veida failu manipulācijām. Zemāk mēs detalizētāk apspriedām awk. Rūpīgi izpildiet komandas un izmēģiniet tās savā terminālī, lai iegūtu pilnīgu izpratni.

1. Izdrukājiet specifiskus laukus no teksta izvades


Visvairāk plaši izmantotas Linux komandas parādīt savus rezultātus, izmantojot dažādus laukus. Parasti mēs izmantojam Linux izgriešanas komandu, lai no šādiem datiem iegūtu noteiktu lauku. Tomēr zemāk esošā komanda parāda, kā to izdarīt, izmantojot komandu awk.

$ who | awk '{print $1}'

Šī komanda parādīs tikai pirmo lauku no komandas who izvades. Tātad jūs vienkārši iegūsit visu pašlaik reģistrēto lietotāju lietotājvārdus. Šeit, $ 1 apzīmē pirmo lauku. Jums ir jāizmanto $ N ja vēlaties iegūt N-to lauku.

2. Drukājiet vairākus laukus no teksta izvades


Awk tulks ļauj mums izdrukāt vēlamo lauku skaitu. Tālāk sniegtajos piemēros ir parādīts, kā iegūt pirmos divus laukus no komandas who izvades.

$ who | awk '{print $1, $2}'

Varat arī kontrolēt izvades lauku secību. Šajā piemērā vispirms tiek parādīta otrā sleja, ko izveidojusi komanda who, un pēc tam pirmā kolonna otrajā laukā.

$ who | awk '{print $2, $1}'

Vienkārši atstājiet laukā parametrus ( $ N ), lai parādītu visus datus.

3. Izmantojiet BEGIN paziņojumus


BEGIN paziņojums ļauj lietotājiem izvadē izdrukāt zināmu informāciju. To parasti izmanto awk ģenerēto izejas datu formatēšanai. Šī paziņojuma sintakse ir parādīta zemāk.

BEGIN { Actions} {ACTION}

Darbības, kas veido sadaļu SĀKT, vienmēr tiek aktivizētas. Tad awk izlasa atlikušās rindas pa vienai un redz, vai kaut kas ir jādara.

$ who | awk 'BEGIN {print 'User	From'} {print $1, $2}'

Iepriekš minētā komanda iezīmēs divus izvades laukus, kas iegūti no komandas izvades.

4. Izmantojiet END paziņojumus


Varat arī izmantot paziņojumu END, lai pārliecinātos, ka noteiktas darbības vienmēr tiek veiktas jūsu darbības beigās. Vienkārši ievietojiet sadaļu END pēc galvenā darbību kopuma.

$ who | awk 'BEGIN {print 'User	From'} {print $1, $2} END {print '--COMPLETED--'}'

Iepriekš minētā komanda pievienos norādīto virkni izvades beigās.

5. Meklēšana, izmantojot modeļus


Liela daļa awk darbu ir saistīta ar modeļu saskaņošanu un regulāro izteiksmi. Kā mēs jau esam apsprieduši, awk meklē modeļus katrā ievades rindā un veic darbību tikai tad, kad tiek aktivizēta atbilstība. Mūsu iepriekšējie noteikumi sastāvēja tikai no darbībām. Zemāk mēs esam ilustrējuši modeļu atbilstības pamatus, izmantojot Linux komandu awk.

$ who | awk '/mary/ {print}'

Šī komanda redzēs, vai lietotājs Marija pašlaik ir pieteicies vai nē. Ja tiks atrasta atbilstība, tā izvadīs visu rindu.

6. Izņemiet informāciju no failiem


Komanda awk ļoti labi darbojas ar failiem, un to var izmantot sarežģītiem failu apstrādes uzdevumiem. Šī komanda parāda, kā awk apstrādā failus.

$ awk '/hello/ {print}' /usr/share/dict/american-english

Šī komanda meklē modeli “sveiki” amerikāņu-angļu vārdnīcas failā. Tas ir pieejams lielākajā daļā Linux balstītas izplatīšanas . Tādējādi šajā failā varat viegli izmēģināt awk programmas.

awk modeļa meklēšana

7. Izlasiet AWK skriptu no avota faila


Lai gan viena līnija programmu rakstīšana ir noderīga, jūs varat arī rakstīt lielas programmas, pilnībā izmantojot awk. Jūs vēlaties tos saglabāt un palaist programmu, izmantojot avota failu.

$ awk -f script-file $ awk --file script-file

The -f vai - fails opcija ļauj mums norādīt programmas failu. Tomēr jums nav jāizmanto pēdiņas (‘’) skripta faila iekšienē, jo Linux apvalks šādā veidā neskaidros programmas kodu.

8. Iestatiet ievades lauka atdalītāju


Lauku atdalītājs ir norobežotājs, kas sadala ievades ierakstu. Mēs varam viegli norādīt lauku atdalītājus awk, izmantojot -F vai -lauku atdalītājs iespēja. Pārbaudiet zemāk esošās komandas, lai redzētu, kā tas darbojas.

$ echo 'This-is-a-simple-example' | awk -F - ' {print $1} ' $ echo 'This-is-a-simple-example' | awk --field-separator - ' {print $1} '

Tas darbojas vienādi, ja Linux izmanto skripta failus, nevis vienu līniju awk komandu.

9. Drukāt informāciju, pamatojoties uz stāvokli


Esam apsprieduši Linux izgriešanas komanda iepriekšējā ceļvedī. Tagad mēs parādīsim, kā iegūt informāciju, izmantojot awk, tikai tad, ja ir noteikti kritēriji. Mēs izmantosim to pašu testa failu, ko izmantojām šajā rokasgrāmatā. Tāpēc dodieties tur un izveidojiet kopiju test.txt failu.

$ awk '$4 > 50' test.txt

Šī komanda izdrukās visas valstis no faila test.txt, kurā ir vairāk nekā 50 miljoni iedzīvotāju.

10. Drukājiet informāciju, salīdzinot regulārās izteiksmes


Šī awk komanda pārbauda, ​​vai jebkuras rindas trešais lauks satur rakstu “Lira”, un, ja tiek atrasta atbilstība, izdrukā visu rindu. Mēs atkal izmantojam failu test.txt, ko izmanto, lai ilustrētu Linux izgriešanas komanda . Tāpēc pirms turpināt, pārliecinieties, vai esat ieguvis šo failu.

$ awk '$3 ~ /Lira/' test.txt

Ja vēlaties, varat drukāt tikai noteiktu daļu no jebkuras spēles.

11. Saskaitiet kopējo ievadīto rindu skaitu


Komandai awk ir daudz speciālu mainīgo, kas ļauj mums viegli veikt daudzas uzlabotas lietas. Viens no šādiem mainīgajiem ir NR, kas satur pašreizējo rindas numuru.

$ awk 'END {print NR} ' test.txt

Šī komanda izvadīs, cik rindu ir mūsu failā test.txt. Tas vispirms atkārtojas pa katru rindu, un, kad tas ir sasniedzis END, tas izdrukās NR vērtību, kas šajā gadījumā satur kopējo rindu skaitu.

12. Iestatiet izvades lauka atdalītāju


Iepriekš mēs esam parādījuši, kā atlasīt ievades lauku atdalītājus, izmantojot -F vai -lauku atdalītājs iespēja. Komanda awk arī ļauj mums norādīt izvades lauku atdalītāju. Zemāk redzamais piemērs to parāda, izmantojot praktisku piemēru.

$ date | awk 'OFS='-' {print$2,$3,$6}'

Šī komanda izdrukā pašreizējo datumu, izmantojot formātu dd-mm-yy. Palaidiet datuma programmu bez awk, lai redzētu, kā izskatās noklusējuma izvade.

13. If Construct izmantošana


Tāpat kā citi populāras programmēšanas valodas , awk arī nodrošina lietotājus ar if-else konstrukcijām. Ja paziņojumam awk ir šāda sintakse.

if (expression) { first_action second_action }

Atbilstošās darbības tiek veiktas tikai tad, ja nosacījuma izteiksme ir patiesa. Zemāk redzamais piemērs to parāda, izmantojot mūsu atsauces failu test.txt .

$ awk '{ if ($4>100) print }' test.txt

Jums nav stingri jāuztur ievilkums.

14. If-Else Constructs izmantošana


Izmantojot zemāk esošo sintaksi, varat izveidot noderīgas trepes. Tie ir noderīgi, izstrādājot sarežģītus awk skriptus, kas attiecas uz dinamiskiem datiem.

if (expression) first_action else second_action
$ awk '{ if ($4>100) print; else print }' test.txt

Iepriekš minētā komanda drukās visu atsauces failu, jo ceturtais lauks katrai rindai nav lielāks par 100.

15. Iestatiet lauka platumu


Dažreiz ievades dati ir diezgan netīri, un lietotājiem var būt grūti tos vizualizēt savos pārskatos. Par laimi, awk nodrošina jaudīgu iebūvētu mainīgo FIELDWIDTHS, kas ļauj mums definēt ar atstarpēm atdalītu platumu sarakstu.

$ echo 5675784464657 | awk 'BEGIN {FIELDWIDTHS= '3 4 5'} {print $1, $2, $3}'

Tas ir ļoti noderīgi, analizējot izkliedētos datus, jo mēs varam kontrolēt izvades lauka platumu tieši tā, kā vēlamies.

lauka platums awk

16. Iestatiet ierakstu atdalītāju


RS vai ierakstu atdalītājs ir vēl viens iebūvēts mainīgais, kas ļauj mums norādīt, kā ieraksti tiek atdalīti. Vispirms izveidosim failu, kas parādīs šī awk mainīgā darbību.

$ cat new.txt Melinda James 23 New Hampshire (222) 466-1234 Daniel James 99 Phonenix Road (322) 677-3412
$ awk 'BEGIN{FS='
'; RS=''} {print $1,$3}' new.txt

Šī komanda parsēs dokumentu un izslēgs abu personu vārdu un adresi.

17. Drukas vides mainīgie


Komanda awk Linux ļauj mums viegli izdrukāt vides mainīgos, izmantojot mainīgo ENVIRON. Zemāk esošā komanda parāda, kā to izmantot, lai izdrukātu mainīgā PATH saturu.

$ awk 'BEGIN{ print ENVIRON['PATH'] }'

Varat izdrukāt jebkura vides mainīgā saturu, aizstājot mainīgā ENVIRON argumentu. Zemāk esošā komanda izdrukā vides mainīgā HOME vērtību.

$ awk 'BEGIN{ print ENVIRON['HOME'] }'

18. Izlaist dažus laukus no izvades


Komanda awk ļauj mums izlaist noteiktas rindas no mūsu izvades. Šī komanda to parādīs, izmantojot mūsu atsauces failu test.txt .

$ awk -F':' '{$2=''; print}' test.txt

Šī komanda izlaidīs mūsu faila otro kolonnu, kurā ir katras valsts galvaspilsētas nosaukums. Varat arī izlaist vairākus laukus, kā parādīts nākamajā komandā.

$ awk -F':' '{$2='';$3='';print}' test.txt

19. Noņemiet tukšās līnijas


Dažreiz dati var saturēt pārāk daudz tukšu rindu. Jūs varat izmantot komandu awk, lai diezgan viegli noņemtu tukšās rindas. Pārbaudiet nākamo komandu, lai redzētu, kā tas darbojas praksē.

$ awk '/^[ 	]*$/{next}{print}' new.txt

Mēs esam noņēmuši visas tukšās rindas no faila new.txt, izmantojot vienkāršu regulāro izteiksmi un iebūvēto awk, ko sauc par nākamo.

20. Noņemiet beigu atstarpes


Daudzu Linux komandu izvade satur beigu atstarpes. Mēs varam izmantot komandu awk operētājsistēmā Linux, lai noņemtu tādas atstarpes kā atstarpes un cilnes. Pārbaudiet zemāk esošo komandu, lai uzzinātu, kā risināt šādas problēmas, izmantojot awk.

$ awk '{sub(/[ 	]*$/, '');print}' new.txt test.txt

Pievienojiet mūsu atsauces failiem dažas atstarpes un pārbaudiet, vai awk tās ir veiksmīgi noņemtas. Tas manā mašīnā to izdarīja veiksmīgi.

21. Pārbaudiet lauku skaitu katrā rindā


Mēs varam viegli pārbaudīt, cik lauku ir rindā, izmantojot vienkāršu awk one-liner. Ir daudz veidu, kā to izdarīt, taču šim uzdevumam mēs izmantosim dažus no awk iebūvētajiem mainīgajiem. Mainīgais NR dod mums rindas numuru, un NF mainīgais nodrošina lauku skaitu.

$ awk '{print NR,'-->',NF}' test.txt

Tagad mēs varam apstiprināt, cik daudz lauku ir katrā rindā test.txt dokuments. Tā kā katra šī faila rinda satur 5 laukus, mēs esam pārliecināti, ka komanda darbojas, kā paredzēts.

22. Pārbaudiet pašreizējo faila nosaukumu


Awk mainīgais FILENAME tiek izmantots pašreizējā ievades faila nosaukuma pārbaudei. Mēs demonstrējam, kā tas darbojas, izmantojot vienkāršu piemēru. Tomēr tas var būt noderīgi situācijās, kad faila nosaukums nav skaidri zināms vai ja ir vairāk nekā viens ievades fails.

$ awk '{print FILENAME}' test.txt $ awk '{print FILENAME}' test.txt new.txt

Iepriekš minētās komandas izdrukā faila nosaukumu awk, ar kuru strādā, katru reizi, kad tiek apstrādāta jauna ievades failu rinda.

23. Pārbaudiet apstrādāto ierakstu skaitu


Šis piemērs parādīs, kā mēs varam pārbaudīt ierakstu skaitu, ko apstrādā komanda awk. Tā kā liels skaits Linux sistēmas administratoru pārskatu ģenerēšanai izmanto awk, tas viņiem ir ļoti noderīgi.

$ awk '{print 'Processing Record - ',NR;} END {print '
Total Records Processed:', NR;}' test.txt

Es bieži izmantoju šo awk fragmentu, lai iegūtu skaidru pārskatu par savām darbībām. Jūs varat to viegli pielāgot, lai pielāgotos jaunām idejām vai darbībām.

apstrādāto rindu skaits awk

24. Izdrukājiet ierakstu kopējo rakstzīmju skaitu


Awk valoda nodrošina ērtu funkciju garums (), kas norāda, cik rakstzīmju ir ierakstā. Tas ir ļoti noderīgi vairākos scenārijos. Ātri apskatiet šo piemēru, lai redzētu, kā tas darbojas.

$ echo 'A random text string...' | awk '{ print length($0); }'
$ awk '{ print length($0); }' /etc/passwd

Iepriekš minētā komanda drukās kopējo rakstzīmju skaitu katrā ievades virknes vai faila rindā.

25. Izdrukājiet visas līnijas ilgāk par noteikto garumu


Iepriekšminētajai komandai mēs varam pievienot dažus nosacījumus un likt tai drukāt tikai tās rindas, kas ir lielākas par iepriekš noteiktu garumu. Tas ir noderīgi, ja jums jau ir priekšstats par konkrēta ieraksta garumu.

$ echo 'A random text string...' | awk 'length($0) > 10'
$ awk '{ length($0) > 5; }' /etc/passwd

Jūs varat izmantot vairāk iespēju un/vai argumentu, lai pielāgotu komandu, pamatojoties uz jūsu prasībām.

26. Izdrukājiet rindu, rakstzīmju un vārdu skaitu


Šī Linux komanda awk izdrukā rindu, rakstzīmju un vārdu skaitu noteiktā ievadē. Šīs darbības veikšanai tiek izmantots mainīgais NR, kā arī dažas pamata aritmētikas.

$ echo 'This is a input line...' | awk '{ w += NF; c += length + 1 } END { print NR, w, c }'

Tas parāda, ka ievades virknē ir 1 rinda, 5 vārdi un tieši 24 rakstzīmes.

27. Aprēķiniet vārdu biežumu


Mēs varam apvienot asociatīvos masīvus un for ciklu in awk, lai aprēķinātu dokumenta vārdu biežumu. Šī komanda var šķist nedaudz sarežģīta, taču tā ir diezgan vienkārša, kad skaidri saprotat pamatkonstrukcijas.

$ awk 'BEGIN {FS='[^a-zA-Z]+' } { for (i=1; i<=NF; i++) words[tolower($i)]++ } END { for (i in words) print i, words[i] }' test.txt

Ja jums ir problēmas ar vienas līnijas fragmentu, nokopējiet šo kodu jaunā failā un palaidiet to, izmantojot avotu.

$ cat > frequency.awk BEGIN { FS='[^a-zA-Z]+' } { for (i=1; i<=NF; i++) words[tolower($i)]++ } END { for (i in words) print i, words[i] }

Pēc tam palaidiet to, izmantojot -f iespēja.

$ awk -f frequency.awk test.txt

28. Pārdēvēt failus, izmantojot AWK


Komandu awk var izmantot, lai pārdēvētu visus failus, kas atbilst noteiktiem kritērijiem. Šī komanda parāda, kā izmantot awk, lai pārdēvētu visus direktorijā esošos .MP3 failus uz .mp3 failiem.

$ touch {a,b,c,d,e}.MP3 $ ls *.MP3 | awk '{ printf('mv '%s' '%s'
', $0, tolower($0)) }' $ ls *.MP3 | awk '{ printf('mv '%s' '%s'
', $0, tolower($0)) }' | sh

Pirmkārt, mēs izveidojām dažus demonstrācijas failus ar paplašinājumu .MP3. Otrā komanda parāda lietotājam, kas notiek, ja pārdēvēšana ir veiksmīga. Visbeidzot, pēdējā komanda pārdēvē operāciju, izmantojot Linux komandu mv.

29. Izdrukājiet skaitļa kvadrātsakni


AWK piedāvā vairākas iebūvētas funkcijas ciparu manipulēšanai. Viens no tiem ir funkcija sqrt (). Tā ir C līdzīga funkcija, kas atgriež dotā skaitļa kvadrātsakni. Ātri apskatiet nākamo piemēru, lai redzētu, kā tas darbojas kopumā.

$ awk 'BEGIN{ print sqrt(36); print sqrt(0); print sqrt(-16) }'

Tā kā jūs nevarat noteikt negatīvā skaitļa kvadrātsakni, izvadē sqrt (-12) vietā tiks parādīts īpašs atslēgvārds ar nosaukumu “nan”.

sqrt funkcija Linux awk komandā

30. Izdrukājiet skaitļa logaritmu


Funkcijas žurnāls awk () nodrošina skaitļa dabisko logaritmu. Tomēr tas darbosies tikai ar pozitīviem skaitļiem, tāpēc ņemiet vērā lietotāju ievades apstiprināšanu. Pretējā gadījumā kāds var pārtraukt jūsu awk programmas un iegūt priviliģētu piekļuvi sistēmas resursiem.

$ awk 'BEGIN{ print log(36); print log(0); print log(-16) }'

Jums vajadzētu redzēt logaritmu 36 un pārbaudīt, vai logaritms 0 ir bezgalība, un negatīvās vērtības žurnāls ir “Nav skaitlis” vai nan.

31. Izdrukājiet skaitļa eksponenciālu


Eksponenciālais os a skaitlis n nodrošina e^n vērtību. To parasti izmanto awk skriptos, kas nodarbojas ar lieliem cipariem vai sarežģītu aritmētisko loģiku. Mēs varam ģenerēt skaitļa eksponenciālu, izmantojot iebūvēto awk funkciju exp ().

$ awk 'BEGIN{ print exp(30); print log(0); print exp(-16) }'

Tomēr awk nevar aprēķināt eksponenciālu lieliem skaitļiem. Jums vajadzētu veikt šādus aprēķinus, izmantojot zema līmeņa programmēšanas valodas, piemēram, C, un norādīt vērtību saviem awk skriptiem.

32. Izveidojiet nejaušus skaitļus, izmantojot AWK


Mēs varam izmantot komandu awk Linux, lai ģenerētu nejaušus skaitļus. Šie skaitļi būs diapazonā no 0 līdz 1, bet nekad 0 vai 1. Jūs varat reizināt fiksētu vērtību ar iegūto skaitli, lai iegūtu lielāku izlases vērtību.

$ awk 'BEGIN{ print rand(); print rand()*99 }'

Funkcijai rand () nav nepieciešami argumenti. Turklāt šīs funkcijas radītie skaitļi nav precīzi nejauši, bet drīzāk pseidogadījumi. Turklāt ir diezgan viegli paredzēt šos skaitļus no skriešanas uz skrējienu. Tāpēc jums nevajadzētu paļauties uz tiem, veicot sensitīvus aprēķinus.

33. Krāsu sastādītāja brīdinājumi sarkanā krāsā


Mūsdienu Linux kompilatori brīdinās, ja jūsu kods nesaglabā valodas standartus vai ja tajā ir kļūdas, kas neaptur programmas izpildi. Šī komanda awk sarkanā krāsā drukās kompilatora ģenerētās brīdinājuma līnijas.

$ gcc -Wall main.c |& awk '/: warning:/{print 'x1B[01;31m' $0 'x1B[m';next;}{print}'

Šī komanda ir noderīga, ja vēlaties precīzi noteikt kompilatora brīdinājumus. Šo komandu varat izmantot ar jebkuru kompilatoru, izņemot gcc, vienkārši mainiet modeli /: brīdinājums: /, lai atspoguļotu konkrēto kompilatoru.

34. Izdrukājiet failu sistēmas UUID informāciju


UUID vai Universāli unikāls identifikators ir skaitlis, ko var izmantot, lai identificētu tādus resursus kā Linux failu sistēma . Mēs varam vienkārši izdrukāt mūsu failu sistēmas UUID informāciju, izmantojot šādu Linux awk komandu.

$ awk '/UUID/ {print $0}' /etc/fstab

Šī komanda meklē tekstu UUID /etc/fstab failu, izmantojot awk modeļus. Tas atgriež komentāru no faila, kas mūs neinteresē. Zemāk esošā komanda nodrošinās, ka mēs saņemam tikai tās rindas, kas sākas ar UUID.

$ awk '/^UUID/ {print $1}' /etc/fstab

Tas ierobežo izvadi līdz pirmajam laukam. Tātad mēs iegūstam tikai UUID numurus.

35. Izdrukājiet Linux kodola attēla versiju


Tiek izmantoti dažādi Linux kodola attēli dažādi Linux izplatījumi . Mēs varam viegli izdrukāt precīzu kodola attēlu, uz kura balstās mūsu sistēma, izmantojot awk. Pārbaudiet šo komandu, lai redzētu, kā tas darbojas kopumā.

$ uname -a | awk '{print $3}'

Mēs vispirms esam izdevuši komandu uname ar -uz opciju un pēc tam pārsūtīja šos datus uz awk. Tad mēs esam ieguvuši kodola attēla versijas informāciju, izmantojot awk.

36. Pievienojiet rindu numurus pirms rindām


Lietotāji diezgan bieži var saskarties ar teksta failiem, kas nesatur rindu numurus. Par laimi, jūs varat viegli pievienot rindu numurus failam, izmantojot Linux komandu awk. Rūpīgi apskatiet zemāk redzamo piemēru, lai redzētu, kā tas darbojas reālajā dzīvē.

$ awk '{ print FNR '. ' $0 ;next}{print}' test.txt

Iepriekš minētā komanda pievienos rindas numuru pirms katras mūsu test.txt atsauces faila rindas. Lai to novērstu, tas izmanto iebūvēto awk mainīgo FNR.

pievienojiet rindu numurus, izmantojot komandu awk

37. Izdrukājiet failu pēc satura kārtošanas


Mēs varam arī izmantot awk, lai izdrukātu sakārtotu visu rindu sarakstu. Šīs komandas drukā visu mūsu test.txt valstu nosaukumu sakārtotā secībā.

$ awk -F ':' '{ print $1 }' test.txt | sort

Nākamā komanda drukās visu lietotāju pieteikšanās vārdu no /etc/passwd failu.

$ awk -F ':' '{ print $1 }' /etc/passwd | sort

Jūs varat viegli mainīt kārtošanas kārtību, mainot kārtošanas komandu.

38. Izdrukājiet rokasgrāmatas lapu


Rokasgrāmatas lapā ir detalizēta informācija par komandu awk, kā arī visas pieejamās iespējas. Tas ir ārkārtīgi svarīgi cilvēkiem, kuri vēlas rūpīgi apgūt awk komandu.

$ man awk

Ja vēlaties apgūt sarežģītas awk funkcijas, tas jums ļoti palīdzēs. Iepazīstieties ar šo dokumentāciju ikreiz, kad esat saskāries ar problēmu.

39. Izdrukājiet palīdzības lapu


Palīdzības lapā ir apkopota informācija par visiem iespējamiem komandrindas argumentiem. Varat izsaukt palīdzības ceļvedi, lai iegūtu awk, izmantojot vienu no šīm komandām.

$ awk -h $ awk --help

Skatiet šo lapu, ja vēlaties ātri apskatīt visas pieejamās awk iespējas.

40. Informācija par drukas versiju


Versijas informācija sniedz mums informāciju par programmu veidošanu. Awk versijas lapā ir tāda informācija kā autortiesības, apkopošanas rīki utt. Šo informāciju varat skatīt, izmantojot vienu no šīm awk komandām.

$ awk -V $ awk --version

Beigu domas


Komanda awk operētājsistēmā Linux ļauj mums veikt visu veidu lietas, tostarp failu apstrādi un sistēmas uzturēšanu. Tas nodrošina daudzveidīgu darbību klāstu, lai diezgan viegli tiktu galā ar ikdienas skaitļošanas uzdevumiem. Mūsu redaktori ir apkopojuši šo rokasgrāmatu ar 40 noderīgām awk komandām, kuras var izmantot teksta manipulācijām vai administrēšanai. Tā kā AWK pati par sevi ir pilnvērtīga programmēšanas valoda, ir vairāki veidi, kā veikt vienu un to pašu darbu. Tāpēc nebrīnieties, kāpēc mēs dažas lietas darām citādi. Jūs vienmēr varat apkopot savas receptes, pamatojoties uz savu prasmju kopumu un pieredzi. Ja jums ir kādi jautājumi, atstājiet mums savas domas.

  • Tagi
  • Programmēšanas rīki
  • Sistēmas utilītas rīki
Kopīgot Facebook Twitter Pinterest WhatsApp ReddIt Telegramma Viber

    7 KOMENTĀRI

    1. Ramesh 2020. gada 24. aprīlis plkst. 07:48

      Kas ir labākais sed vai awk?

      Atbildēt
      • lauhub 2021. gada 6. janvāris 04:41

        Abi ir labākie:

        - sed ir noderīgs vienkāršiem nomaiņas/izdevuma uzdevumiem, un tam ir daži ierobežojumi sarežģītu uzdevumu programmēšanai (lai gan pieredzējuši lietotāji var darīt daudzas lietas)

        - awk ir jābūt daudzpusīgākam, lai veiktu vienkāršus uzdevumus, bet ļauj sarežģītākām programmām izmantot sarežģītākas datu struktūras.

        Jebkurā gadījumā viss ir atkarīgs no jūsu vajadzībām un zināšanām par šiem rīkiem

        Atbildēt
      • DC 2021. gada 16. jūlijs plkst. 09:17

        Abi ir funkcionāli atšķirīgi. sed ir ierobežota funkcionalitāte. Parasti izmanto, lai atrastu un aizstātu virkņu redaktoru.
        awk tiek izmantots datu manipulācijām un nodrošina vairāk programmēšanas funkcionalitātes

        Atbildēt
    2. Ahmeds 2020. gada 16. aprīlis plkst. 13:24

      Sveiki,
      Piemēri ir lieliski, taču būtu bijis labāk, ja jūs būtu ievietojis izlaidi arī pēc piemēra.

      Atbildēt
      • Rubaiat Hossain 2020. gada 18. aprīlis plkst. 01:28

        Paldies, Ahmed, ka tu paliec pie mums. Tomēr mēs baidāmies, ka katrai komandai pievienojot atsevišķus attēlus, ceļvedis būs ārkārtīgi garš, un tāpēc lietotāji, kas to lasa no maza ekrāna ierīcēm, piemēram, tālruņiem/planšetdatoriem, var saskarties ar nevēlamu ritināšanas pieredzi.

        Turklāt mēs mudinām mūsu lasītājus uzlabot šīs awk komandas Linux, atrodoties ceļā, un izmēģināt tās no pirmavotiem. Tādā veidā jūs tos apgūsit ātrāk.

        Atbildēt
    3. Stefans 2020. gada 6. aprīlī plkst. 10:54

      Lieliski piemēri. Paldies par šo

      Atbildēt
    4. Kārans Grovers 2020. gada 2. aprīlī plkst. 17:29

      jauki awk piemēri

      Atbildēt

    ATSTĀJ ATBILDI Atcelt atbildi

    Komentārs: Lūdzu, ievadiet savu komentāru! Vārds:* Lūdzu, ievadiet savu vārdu šeit E -pasts:* Jūs esat ievadījis nepareizu e -pasta adresi! Lūdzu, šeit ievadiet savu e -pasta adresi Vietne:

    Saglabājiet manu vārdu, e -pastu un vietni šajā pārlūkprogrammā, lai nākamreiz komentētu.

    spot_img

    Jaunākā ziņa

    Android

    10 labākās sejas maiņas lietotnes Android un iOS ierīcēm

    Windows OS

    Kā ieplānot Windows 10, lai automātiski iztukšotu atkritni

    Android

    10 labākās rēķinu izrakstīšanas lietotnes Android ierīcei, lai ātri samaksātu

    Windows OS

    10 labākās GPU etalona programmatūras jūsu datoram

    Vajag izlasīt

    Linux

    Kā instalēt un konfigurēt XAMPP operētājsistēmā Ubuntu Linux

    Linux

    Ubuntu Communitheme - Jauna Ubuntu kopienas tēma

    Linux

    Kā instalēt programmatūru no avota koda savā Linux sistēmā

    Linux

    RedNotebook - mūsdienīga un bezmaksas dienasgrāmatu un žurnālu programmatūra Linux

    Saistītā ziņa

    Kā instalēt un iestatīt kabīnes tīmekļa konsoli Linux sistēmā

    Kā instalēt un iestatīt Yii PHP Framework Ubuntu Linux

    Kā labot W: dažiem indeksa failiem neizdevās lejupielādēt kļūdu Ubuntu Linux

    Kā instalēt un iestatīt 1Password Linux darbvirsmā

    Kā instalēt jaunāko GNU Nano teksta redaktoru Linux darbvirsmā

    Kā instalēt jaunu relikvijas infrastruktūras aģentu Linux sistēmā

    ); }'
    $ awk '{ print length(
    Mājas A-Z komandas 40 Praktiska un noderīga awk komanda Linux un BSD AutorsMehedi Hasan InA-Z komandasPiedāvātie 1271 7

    SATURS

    1. Izpratne par AWK programmām
    2. Praktiski awk komandu piemēri Linux
      1. 1. Izdrukājiet specifiskus laukus no teksta izvades
      2. 2. Drukājiet vairākus laukus no teksta izvades
      3. 3. Izmantojiet BEGIN paziņojumus
      4. 4. Izmantojiet END paziņojumus
      5. 5. Meklēšana, izmantojot modeļus
      6. 6. Izņemiet informāciju no failiem
      7. 7. Izlasiet AWK skriptu no avota faila
      8. 8. Iestatiet ievades lauka atdalītāju
      9. 9. Drukāt informāciju, pamatojoties uz stāvokli
      10. 10. Drukājiet informāciju, salīdzinot regulārās izteiksmes
      11. 11. Saskaitiet kopējo ievadīto rindu skaitu
      12. 12. Iestatiet izvades lauka atdalītāju
      13. 13. If Construct izmantošana
      14. 14. If-Else Constructs izmantošana
      15. 15. Iestatiet lauka platumu
      16. 16. Iestatiet ierakstu atdalītāju
      17. 17. Drukas vides mainīgie
      18. 18. Izlaist dažus laukus no izvades
      19. 19. Noņemiet tukšās līnijas
      20. 20. Noņemiet beigu atstarpes
      21. 21. Pārbaudiet lauku skaitu katrā rindā
      22. 22. Pārbaudiet pašreizējo faila nosaukumu
      23. 23. Pārbaudiet apstrādāto ierakstu skaitu
      24. 24. Izdrukājiet ierakstu kopējo rakstzīmju skaitu
      25. 25. Izdrukājiet visas līnijas ilgāk par noteikto garumu
      26. 26. Izdrukājiet rindu, rakstzīmju un vārdu skaitu
      27. 27. Aprēķiniet vārdu biežumu
      28. 28. Pārdēvēt failus, izmantojot AWK
      29. 29. Izdrukājiet skaitļa kvadrātsakni
      30. 30. Izdrukājiet skaitļa logaritmu
      31. 31. Izdrukājiet skaitļa eksponenciālu
      32. 32. Izveidojiet nejaušus skaitļus, izmantojot AWK
      33. 33. Krāsu sastādītāja brīdinājumi sarkanā krāsā
      34. 34. Izdrukājiet failu sistēmas UUID informāciju
      35. 35. Izdrukājiet Linux kodola attēla versiju
      36. 36. Pievienojiet rindu numurus pirms rindām
      37. 37. Izdrukājiet failu pēc satura kārtošanas
      38. 38. Izdrukājiet rokasgrāmatas lapu
      39. 39. Izdrukājiet palīdzības lapu
      40. 40. Informācija par drukas versiju
    3. Beigu domas

    AWK ir spēcīga> pilnvērtīga programmēšanas valoda . AWK savu nosaukumu ieguvis no tā autoru iniciāļiem - Aho, Veinbergera un Kernighana. Komanda awk Linux un citās Unix sistēmās izsauc tulku, kas palaiž AWK skriptus. Nesenās sistēmās pastāv vairākas awk ieviešanas, piemēram, gawk (GNU awk), mawk (Minimal awk) un nawk (New awk). Apskatiet tālāk sniegtos piemērus, ja vēlaties apgūt awk.

    Izpratne par AWK programmām


    Programmas, kas rakstītas awk, sastāv no noteikumiem, kas ir vienkārši modeļu un darbību pāris. Modeļi ir sagrupēti iekavās {}, un darbības daļa tiek aktivizēta ikreiz, kad awk atrod tekstam atbilstošus tekstus. Lai gan awk tika izstrādāts vienas līnijas rakstīšanai, pieredzējuši lietotāji ar to var viegli rakstīt sarežģītus skriptus.

    awk komanda Linux

    AWK programmas ir ļoti noderīgas liela mēroga failu apstrādei. Tas identificē teksta laukus, izmantojot speciālās rakstzīmes un atdalītājus. Tā piedāvā arī augsta līmeņa programmēšanas konstrukcijas, piemēram, masīvus un cilpas. Tāpēc ir ļoti iespējams rakstīt stabilas programmas, izmantojot vienkāršu awk.

    Praktiski awk komandu piemēri Linux


    Administratori parasti izmanto awk datu iegūšanai un ziņošanai kopā ar cita veida failu manipulācijām. Zemāk mēs detalizētāk apspriedām awk. Rūpīgi izpildiet komandas un izmēģiniet tās savā terminālī, lai iegūtu pilnīgu izpratni.

    1. Izdrukājiet specifiskus laukus no teksta izvades


    Visvairāk plaši izmantotas Linux komandas parādīt savus rezultātus, izmantojot dažādus laukus. Parasti mēs izmantojam Linux izgriešanas komandu, lai no šādiem datiem iegūtu noteiktu lauku. Tomēr zemāk esošā komanda parāda, kā to izdarīt, izmantojot komandu awk.

    $ who | awk '{print $1}'

    Šī komanda parādīs tikai pirmo lauku no komandas who izvades. Tātad jūs vienkārši iegūsit visu pašlaik reģistrēto lietotāju lietotājvārdus. Šeit, $ 1 apzīmē pirmo lauku. Jums ir jāizmanto $ N ja vēlaties iegūt N-to lauku.

    2. Drukājiet vairākus laukus no teksta izvades


    Awk tulks ļauj mums izdrukāt vēlamo lauku skaitu. Tālāk sniegtajos piemēros ir parādīts, kā iegūt pirmos divus laukus no komandas who izvades.

    $ who | awk '{print $1, $2}'

    Varat arī kontrolēt izvades lauku secību. Šajā piemērā vispirms tiek parādīta otrā sleja, ko izveidojusi komanda who, un pēc tam pirmā kolonna otrajā laukā.

    $ who | awk '{print $2, $1}'

    Vienkārši atstājiet laukā parametrus ( $ N ), lai parādītu visus datus.

    3. Izmantojiet BEGIN paziņojumus


    BEGIN paziņojums ļauj lietotājiem izvadē izdrukāt zināmu informāciju. To parasti izmanto awk ģenerēto izejas datu formatēšanai. Šī paziņojuma sintakse ir parādīta zemāk.

    BEGIN { Actions} {ACTION}

    Darbības, kas veido sadaļu SĀKT, vienmēr tiek aktivizētas. Tad awk izlasa atlikušās rindas pa vienai un redz, vai kaut kas ir jādara.

    $ who | awk 'BEGIN {print 'User	From'} {print $1, $2}'

    Iepriekš minētā komanda iezīmēs divus izvades laukus, kas iegūti no komandas izvades.

    4. Izmantojiet END paziņojumus


    Varat arī izmantot paziņojumu END, lai pārliecinātos, ka noteiktas darbības vienmēr tiek veiktas jūsu darbības beigās. Vienkārši ievietojiet sadaļu END pēc galvenā darbību kopuma.

    $ who | awk 'BEGIN {print 'User	From'} {print $1, $2} END {print '--COMPLETED--'}'

    Iepriekš minētā komanda pievienos norādīto virkni izvades beigās.

    5. Meklēšana, izmantojot modeļus


    Liela daļa awk darbu ir saistīta ar modeļu saskaņošanu un regulāro izteiksmi. Kā mēs jau esam apsprieduši, awk meklē modeļus katrā ievades rindā un veic darbību tikai tad, kad tiek aktivizēta atbilstība. Mūsu iepriekšējie noteikumi sastāvēja tikai no darbībām. Zemāk mēs esam ilustrējuši modeļu atbilstības pamatus, izmantojot Linux komandu awk.

    $ who | awk '/mary/ {print}'

    Šī komanda redzēs, vai lietotājs Marija pašlaik ir pieteicies vai nē. Ja tiks atrasta atbilstība, tā izvadīs visu rindu.

    6. Izņemiet informāciju no failiem


    Komanda awk ļoti labi darbojas ar failiem, un to var izmantot sarežģītiem failu apstrādes uzdevumiem. Šī komanda parāda, kā awk apstrādā failus.

    $ awk '/hello/ {print}' /usr/share/dict/american-english

    Šī komanda meklē modeli “sveiki” amerikāņu-angļu vārdnīcas failā. Tas ir pieejams lielākajā daļā Linux balstītas izplatīšanas . Tādējādi šajā failā varat viegli izmēģināt awk programmas.

    awk modeļa meklēšana

    7. Izlasiet AWK skriptu no avota faila


    Lai gan viena līnija programmu rakstīšana ir noderīga, jūs varat arī rakstīt lielas programmas, pilnībā izmantojot awk. Jūs vēlaties tos saglabāt un palaist programmu, izmantojot avota failu.

    $ awk -f script-file $ awk --file script-file

    The -f vai - fails opcija ļauj mums norādīt programmas failu. Tomēr jums nav jāizmanto pēdiņas (‘’) skripta faila iekšienē, jo Linux apvalks šādā veidā neskaidros programmas kodu.

    8. Iestatiet ievades lauka atdalītāju


    Lauku atdalītājs ir norobežotājs, kas sadala ievades ierakstu. Mēs varam viegli norādīt lauku atdalītājus awk, izmantojot -F vai -lauku atdalītājs iespēja. Pārbaudiet zemāk esošās komandas, lai redzētu, kā tas darbojas.

    $ echo 'This-is-a-simple-example' | awk -F - ' {print $1} ' $ echo 'This-is-a-simple-example' | awk --field-separator - ' {print $1} '

    Tas darbojas vienādi, ja Linux izmanto skripta failus, nevis vienu līniju awk komandu.

    9. Drukāt informāciju, pamatojoties uz stāvokli


    Esam apsprieduši Linux izgriešanas komanda iepriekšējā ceļvedī. Tagad mēs parādīsim, kā iegūt informāciju, izmantojot awk, tikai tad, ja ir noteikti kritēriji. Mēs izmantosim to pašu testa failu, ko izmantojām šajā rokasgrāmatā. Tāpēc dodieties tur un izveidojiet kopiju test.txt failu.

    $ awk '$4 > 50' test.txt

    Šī komanda izdrukās visas valstis no faila test.txt, kurā ir vairāk nekā 50 miljoni iedzīvotāju.

    10. Drukājiet informāciju, salīdzinot regulārās izteiksmes


    Šī awk komanda pārbauda, ​​vai jebkuras rindas trešais lauks satur rakstu “Lira”, un, ja tiek atrasta atbilstība, izdrukā visu rindu. Mēs atkal izmantojam failu test.txt, ko izmanto, lai ilustrētu Linux izgriešanas komanda . Tāpēc pirms turpināt, pārliecinieties, vai esat ieguvis šo failu.

    $ awk '$3 ~ /Lira/' test.txt

    Ja vēlaties, varat drukāt tikai noteiktu daļu no jebkuras spēles.

    11. Saskaitiet kopējo ievadīto rindu skaitu


    Komandai awk ir daudz speciālu mainīgo, kas ļauj mums viegli veikt daudzas uzlabotas lietas. Viens no šādiem mainīgajiem ir NR, kas satur pašreizējo rindas numuru.

    $ awk 'END {print NR} ' test.txt

    Šī komanda izvadīs, cik rindu ir mūsu failā test.txt. Tas vispirms atkārtojas pa katru rindu, un, kad tas ir sasniedzis END, tas izdrukās NR vērtību, kas šajā gadījumā satur kopējo rindu skaitu.

    12. Iestatiet izvades lauka atdalītāju


    Iepriekš mēs esam parādījuši, kā atlasīt ievades lauku atdalītājus, izmantojot -F vai -lauku atdalītājs iespēja. Komanda awk arī ļauj mums norādīt izvades lauku atdalītāju. Zemāk redzamais piemērs to parāda, izmantojot praktisku piemēru.

    $ date | awk 'OFS='-' {print$2,$3,$6}'

    Šī komanda izdrukā pašreizējo datumu, izmantojot formātu dd-mm-yy. Palaidiet datuma programmu bez awk, lai redzētu, kā izskatās noklusējuma izvade.

    13. If Construct izmantošana


    Tāpat kā citi populāras programmēšanas valodas , awk arī nodrošina lietotājus ar if-else konstrukcijām. Ja paziņojumam awk ir šāda sintakse.

    if (expression) { first_action second_action }

    Atbilstošās darbības tiek veiktas tikai tad, ja nosacījuma izteiksme ir patiesa. Zemāk redzamais piemērs to parāda, izmantojot mūsu atsauces failu test.txt .

    $ awk '{ if ($4>100) print }' test.txt

    Jums nav stingri jāuztur ievilkums.

    14. If-Else Constructs izmantošana


    Izmantojot zemāk esošo sintaksi, varat izveidot noderīgas trepes. Tie ir noderīgi, izstrādājot sarežģītus awk skriptus, kas attiecas uz dinamiskiem datiem.

    if (expression) first_action else second_action
    $ awk '{ if ($4>100) print; else print }' test.txt

    Iepriekš minētā komanda drukās visu atsauces failu, jo ceturtais lauks katrai rindai nav lielāks par 100.

    15. Iestatiet lauka platumu


    Dažreiz ievades dati ir diezgan netīri, un lietotājiem var būt grūti tos vizualizēt savos pārskatos. Par laimi, awk nodrošina jaudīgu iebūvētu mainīgo FIELDWIDTHS, kas ļauj mums definēt ar atstarpēm atdalītu platumu sarakstu.

    $ echo 5675784464657 | awk 'BEGIN {FIELDWIDTHS= '3 4 5'} {print $1, $2, $3}'

    Tas ir ļoti noderīgi, analizējot izkliedētos datus, jo mēs varam kontrolēt izvades lauka platumu tieši tā, kā vēlamies.

    lauka platums awk

    16. Iestatiet ierakstu atdalītāju


    RS vai ierakstu atdalītājs ir vēl viens iebūvēts mainīgais, kas ļauj mums norādīt, kā ieraksti tiek atdalīti. Vispirms izveidosim failu, kas parādīs šī awk mainīgā darbību.

    $ cat new.txt Melinda James 23 New Hampshire (222) 466-1234 Daniel James 99 Phonenix Road (322) 677-3412
    $ awk 'BEGIN{FS='
    '; RS=''} {print $1,$3}' new.txt

    Šī komanda parsēs dokumentu un izslēgs abu personu vārdu un adresi.

    17. Drukas vides mainīgie


    Komanda awk Linux ļauj mums viegli izdrukāt vides mainīgos, izmantojot mainīgo ENVIRON. Zemāk esošā komanda parāda, kā to izmantot, lai izdrukātu mainīgā PATH saturu.

    $ awk 'BEGIN{ print ENVIRON['PATH'] }'

    Varat izdrukāt jebkura vides mainīgā saturu, aizstājot mainīgā ENVIRON argumentu. Zemāk esošā komanda izdrukā vides mainīgā HOME vērtību.

    $ awk 'BEGIN{ print ENVIRON['HOME'] }'

    18. Izlaist dažus laukus no izvades


    Komanda awk ļauj mums izlaist noteiktas rindas no mūsu izvades. Šī komanda to parādīs, izmantojot mūsu atsauces failu test.txt .

    $ awk -F':' '{$2=''; print}' test.txt

    Šī komanda izlaidīs mūsu faila otro kolonnu, kurā ir katras valsts galvaspilsētas nosaukums. Varat arī izlaist vairākus laukus, kā parādīts nākamajā komandā.

    $ awk -F':' '{$2='';$3='';print}' test.txt

    19. Noņemiet tukšās līnijas


    Dažreiz dati var saturēt pārāk daudz tukšu rindu. Jūs varat izmantot komandu awk, lai diezgan viegli noņemtu tukšās rindas. Pārbaudiet nākamo komandu, lai redzētu, kā tas darbojas praksē.

    $ awk '/^[ 	]*$/{next}{print}' new.txt

    Mēs esam noņēmuši visas tukšās rindas no faila new.txt, izmantojot vienkāršu regulāro izteiksmi un iebūvēto awk, ko sauc par nākamo.

    20. Noņemiet beigu atstarpes


    Daudzu Linux komandu izvade satur beigu atstarpes. Mēs varam izmantot komandu awk operētājsistēmā Linux, lai noņemtu tādas atstarpes kā atstarpes un cilnes. Pārbaudiet zemāk esošo komandu, lai uzzinātu, kā risināt šādas problēmas, izmantojot awk.

    $ awk '{sub(/[ 	]*$/, '');print}' new.txt test.txt

    Pievienojiet mūsu atsauces failiem dažas atstarpes un pārbaudiet, vai awk tās ir veiksmīgi noņemtas. Tas manā mašīnā to izdarīja veiksmīgi.

    21. Pārbaudiet lauku skaitu katrā rindā


    Mēs varam viegli pārbaudīt, cik lauku ir rindā, izmantojot vienkāršu awk one-liner. Ir daudz veidu, kā to izdarīt, taču šim uzdevumam mēs izmantosim dažus no awk iebūvētajiem mainīgajiem. Mainīgais NR dod mums rindas numuru, un NF mainīgais nodrošina lauku skaitu.

    $ awk '{print NR,'-->',NF}' test.txt

    Tagad mēs varam apstiprināt, cik daudz lauku ir katrā rindā test.txt dokuments. Tā kā katra šī faila rinda satur 5 laukus, mēs esam pārliecināti, ka komanda darbojas, kā paredzēts.

    22. Pārbaudiet pašreizējo faila nosaukumu


    Awk mainīgais FILENAME tiek izmantots pašreizējā ievades faila nosaukuma pārbaudei. Mēs demonstrējam, kā tas darbojas, izmantojot vienkāršu piemēru. Tomēr tas var būt noderīgi situācijās, kad faila nosaukums nav skaidri zināms vai ja ir vairāk nekā viens ievades fails.

    $ awk '{print FILENAME}' test.txt $ awk '{print FILENAME}' test.txt new.txt

    Iepriekš minētās komandas izdrukā faila nosaukumu awk, ar kuru strādā, katru reizi, kad tiek apstrādāta jauna ievades failu rinda.

    23. Pārbaudiet apstrādāto ierakstu skaitu


    Šis piemērs parādīs, kā mēs varam pārbaudīt ierakstu skaitu, ko apstrādā komanda awk. Tā kā liels skaits Linux sistēmas administratoru pārskatu ģenerēšanai izmanto awk, tas viņiem ir ļoti noderīgi.

    $ awk '{print 'Processing Record - ',NR;} END {print '
    Total Records Processed:', NR;}' test.txt

    Es bieži izmantoju šo awk fragmentu, lai iegūtu skaidru pārskatu par savām darbībām. Jūs varat to viegli pielāgot, lai pielāgotos jaunām idejām vai darbībām.

    apstrādāto rindu skaits awk

    24. Izdrukājiet ierakstu kopējo rakstzīmju skaitu


    Awk valoda nodrošina ērtu funkciju garums (), kas norāda, cik rakstzīmju ir ierakstā. Tas ir ļoti noderīgi vairākos scenārijos. Ātri apskatiet šo piemēru, lai redzētu, kā tas darbojas.

    $ echo 'A random text string...' | awk '{ print length($0); }'
    $ awk '{ print length($0); }' /etc/passwd

    Iepriekš minētā komanda drukās kopējo rakstzīmju skaitu katrā ievades virknes vai faila rindā.

    25. Izdrukājiet visas līnijas ilgāk par noteikto garumu


    Iepriekšminētajai komandai mēs varam pievienot dažus nosacījumus un likt tai drukāt tikai tās rindas, kas ir lielākas par iepriekš noteiktu garumu. Tas ir noderīgi, ja jums jau ir priekšstats par konkrēta ieraksta garumu.

    $ echo 'A random text string...' | awk 'length($0) > 10'
    $ awk '{ length($0) > 5; }' /etc/passwd

    Jūs varat izmantot vairāk iespēju un/vai argumentu, lai pielāgotu komandu, pamatojoties uz jūsu prasībām.

    26. Izdrukājiet rindu, rakstzīmju un vārdu skaitu


    Šī Linux komanda awk izdrukā rindu, rakstzīmju un vārdu skaitu noteiktā ievadē. Šīs darbības veikšanai tiek izmantots mainīgais NR, kā arī dažas pamata aritmētikas.

    $ echo 'This is a input line...' | awk '{ w += NF; c += length + 1 } END { print NR, w, c }'

    Tas parāda, ka ievades virknē ir 1 rinda, 5 vārdi un tieši 24 rakstzīmes.

    27. Aprēķiniet vārdu biežumu


    Mēs varam apvienot asociatīvos masīvus un for ciklu in awk, lai aprēķinātu dokumenta vārdu biežumu. Šī komanda var šķist nedaudz sarežģīta, taču tā ir diezgan vienkārša, kad skaidri saprotat pamatkonstrukcijas.

    $ awk 'BEGIN {FS='[^a-zA-Z]+' } { for (i=1; i<=NF; i++) words[tolower($i)]++ } END { for (i in words) print i, words[i] }' test.txt

    Ja jums ir problēmas ar vienas līnijas fragmentu, nokopējiet šo kodu jaunā failā un palaidiet to, izmantojot avotu.

    $ cat > frequency.awk BEGIN { FS='[^a-zA-Z]+' } { for (i=1; i<=NF; i++) words[tolower($i)]++ } END { for (i in words) print i, words[i] }

    Pēc tam palaidiet to, izmantojot -f iespēja.

    $ awk -f frequency.awk test.txt

    28. Pārdēvēt failus, izmantojot AWK


    Komandu awk var izmantot, lai pārdēvētu visus failus, kas atbilst noteiktiem kritērijiem. Šī komanda parāda, kā izmantot awk, lai pārdēvētu visus direktorijā esošos .MP3 failus uz .mp3 failiem.

    $ touch {a,b,c,d,e}.MP3 $ ls *.MP3 | awk '{ printf('mv '%s' '%s'
    ', $0, tolower($0)) }' $ ls *.MP3 | awk '{ printf('mv '%s' '%s'
    ', $0, tolower($0)) }' | sh

    Pirmkārt, mēs izveidojām dažus demonstrācijas failus ar paplašinājumu .MP3. Otrā komanda parāda lietotājam, kas notiek, ja pārdēvēšana ir veiksmīga. Visbeidzot, pēdējā komanda pārdēvē operāciju, izmantojot Linux komandu mv.

    29. Izdrukājiet skaitļa kvadrātsakni


    AWK piedāvā vairākas iebūvētas funkcijas ciparu manipulēšanai. Viens no tiem ir funkcija sqrt (). Tā ir C līdzīga funkcija, kas atgriež dotā skaitļa kvadrātsakni. Ātri apskatiet nākamo piemēru, lai redzētu, kā tas darbojas kopumā.

    $ awk 'BEGIN{ print sqrt(36); print sqrt(0); print sqrt(-16) }'

    Tā kā jūs nevarat noteikt negatīvā skaitļa kvadrātsakni, izvadē sqrt (-12) vietā tiks parādīts īpašs atslēgvārds ar nosaukumu “nan”.

    sqrt funkcija Linux awk komandā

    30. Izdrukājiet skaitļa logaritmu


    Funkcijas žurnāls awk () nodrošina skaitļa dabisko logaritmu. Tomēr tas darbosies tikai ar pozitīviem skaitļiem, tāpēc ņemiet vērā lietotāju ievades apstiprināšanu. Pretējā gadījumā kāds var pārtraukt jūsu awk programmas un iegūt priviliģētu piekļuvi sistēmas resursiem.

    $ awk 'BEGIN{ print log(36); print log(0); print log(-16) }'

    Jums vajadzētu redzēt logaritmu 36 un pārbaudīt, vai logaritms 0 ir bezgalība, un negatīvās vērtības žurnāls ir “Nav skaitlis” vai nan.

    31. Izdrukājiet skaitļa eksponenciālu


    Eksponenciālais os a skaitlis n nodrošina e^n vērtību. To parasti izmanto awk skriptos, kas nodarbojas ar lieliem cipariem vai sarežģītu aritmētisko loģiku. Mēs varam ģenerēt skaitļa eksponenciālu, izmantojot iebūvēto awk funkciju exp ().

    $ awk 'BEGIN{ print exp(30); print log(0); print exp(-16) }'

    Tomēr awk nevar aprēķināt eksponenciālu lieliem skaitļiem. Jums vajadzētu veikt šādus aprēķinus, izmantojot zema līmeņa programmēšanas valodas, piemēram, C, un norādīt vērtību saviem awk skriptiem.

    32. Izveidojiet nejaušus skaitļus, izmantojot AWK


    Mēs varam izmantot komandu awk Linux, lai ģenerētu nejaušus skaitļus. Šie skaitļi būs diapazonā no 0 līdz 1, bet nekad 0 vai 1. Jūs varat reizināt fiksētu vērtību ar iegūto skaitli, lai iegūtu lielāku izlases vērtību.

    $ awk 'BEGIN{ print rand(); print rand()*99 }'

    Funkcijai rand () nav nepieciešami argumenti. Turklāt šīs funkcijas radītie skaitļi nav precīzi nejauši, bet drīzāk pseidogadījumi. Turklāt ir diezgan viegli paredzēt šos skaitļus no skriešanas uz skrējienu. Tāpēc jums nevajadzētu paļauties uz tiem, veicot sensitīvus aprēķinus.

    33. Krāsu sastādītāja brīdinājumi sarkanā krāsā


    Mūsdienu Linux kompilatori brīdinās, ja jūsu kods nesaglabā valodas standartus vai ja tajā ir kļūdas, kas neaptur programmas izpildi. Šī komanda awk sarkanā krāsā drukās kompilatora ģenerētās brīdinājuma līnijas.

    $ gcc -Wall main.c |& awk '/: warning:/{print 'x1B[01;31m' $0 'x1B[m';next;}{print}'

    Šī komanda ir noderīga, ja vēlaties precīzi noteikt kompilatora brīdinājumus. Šo komandu varat izmantot ar jebkuru kompilatoru, izņemot gcc, vienkārši mainiet modeli /: brīdinājums: /, lai atspoguļotu konkrēto kompilatoru.

    34. Izdrukājiet failu sistēmas UUID informāciju


    UUID vai Universāli unikāls identifikators ir skaitlis, ko var izmantot, lai identificētu tādus resursus kā Linux failu sistēma . Mēs varam vienkārši izdrukāt mūsu failu sistēmas UUID informāciju, izmantojot šādu Linux awk komandu.

    $ awk '/UUID/ {print $0}' /etc/fstab

    Šī komanda meklē tekstu UUID /etc/fstab failu, izmantojot awk modeļus. Tas atgriež komentāru no faila, kas mūs neinteresē. Zemāk esošā komanda nodrošinās, ka mēs saņemam tikai tās rindas, kas sākas ar UUID.

    $ awk '/^UUID/ {print $1}' /etc/fstab

    Tas ierobežo izvadi līdz pirmajam laukam. Tātad mēs iegūstam tikai UUID numurus.

    35. Izdrukājiet Linux kodola attēla versiju


    Tiek izmantoti dažādi Linux kodola attēli dažādi Linux izplatījumi . Mēs varam viegli izdrukāt precīzu kodola attēlu, uz kura balstās mūsu sistēma, izmantojot awk. Pārbaudiet šo komandu, lai redzētu, kā tas darbojas kopumā.

    $ uname -a | awk '{print $3}'

    Mēs vispirms esam izdevuši komandu uname ar -uz opciju un pēc tam pārsūtīja šos datus uz awk. Tad mēs esam ieguvuši kodola attēla versijas informāciju, izmantojot awk.

    36. Pievienojiet rindu numurus pirms rindām


    Lietotāji diezgan bieži var saskarties ar teksta failiem, kas nesatur rindu numurus. Par laimi, jūs varat viegli pievienot rindu numurus failam, izmantojot Linux komandu awk. Rūpīgi apskatiet zemāk redzamo piemēru, lai redzētu, kā tas darbojas reālajā dzīvē.

    $ awk '{ print FNR '. ' $0 ;next}{print}' test.txt

    Iepriekš minētā komanda pievienos rindas numuru pirms katras mūsu test.txt atsauces faila rindas. Lai to novērstu, tas izmanto iebūvēto awk mainīgo FNR.

    pievienojiet rindu numurus, izmantojot komandu awk

    37. Izdrukājiet failu pēc satura kārtošanas


    Mēs varam arī izmantot awk, lai izdrukātu sakārtotu visu rindu sarakstu. Šīs komandas drukā visu mūsu test.txt valstu nosaukumu sakārtotā secībā.

    $ awk -F ':' '{ print $1 }' test.txt | sort

    Nākamā komanda drukās visu lietotāju pieteikšanās vārdu no /etc/passwd failu.

    $ awk -F ':' '{ print $1 }' /etc/passwd | sort

    Jūs varat viegli mainīt kārtošanas kārtību, mainot kārtošanas komandu.

    38. Izdrukājiet rokasgrāmatas lapu


    Rokasgrāmatas lapā ir detalizēta informācija par komandu awk, kā arī visas pieejamās iespējas. Tas ir ārkārtīgi svarīgi cilvēkiem, kuri vēlas rūpīgi apgūt awk komandu.

    $ man awk

    Ja vēlaties apgūt sarežģītas awk funkcijas, tas jums ļoti palīdzēs. Iepazīstieties ar šo dokumentāciju ikreiz, kad esat saskāries ar problēmu.

    39. Izdrukājiet palīdzības lapu


    Palīdzības lapā ir apkopota informācija par visiem iespējamiem komandrindas argumentiem. Varat izsaukt palīdzības ceļvedi, lai iegūtu awk, izmantojot vienu no šīm komandām.

    $ awk -h $ awk --help

    Skatiet šo lapu, ja vēlaties ātri apskatīt visas pieejamās awk iespējas.

    40. Informācija par drukas versiju


    Versijas informācija sniedz mums informāciju par programmu veidošanu. Awk versijas lapā ir tāda informācija kā autortiesības, apkopošanas rīki utt. Šo informāciju varat skatīt, izmantojot vienu no šīm awk komandām.

    $ awk -V $ awk --version

    Beigu domas


    Komanda awk operētājsistēmā Linux ļauj mums veikt visu veidu lietas, tostarp failu apstrādi un sistēmas uzturēšanu. Tas nodrošina daudzveidīgu darbību klāstu, lai diezgan viegli tiktu galā ar ikdienas skaitļošanas uzdevumiem. Mūsu redaktori ir apkopojuši šo rokasgrāmatu ar 40 noderīgām awk komandām, kuras var izmantot teksta manipulācijām vai administrēšanai. Tā kā AWK pati par sevi ir pilnvērtīga programmēšanas valoda, ir vairāki veidi, kā veikt vienu un to pašu darbu. Tāpēc nebrīnieties, kāpēc mēs dažas lietas darām citādi. Jūs vienmēr varat apkopot savas receptes, pamatojoties uz savu prasmju kopumu un pieredzi. Ja jums ir kādi jautājumi, atstājiet mums savas domas.

    • Tagi
    • Programmēšanas rīki
    • Sistēmas utilītas rīki
    Kopīgot Facebook Twitter Pinterest WhatsApp ReddIt Telegramma Viber

      7 KOMENTĀRI

      1. Ramesh 2020. gada 24. aprīlis plkst. 07:48

        Kas ir labākais sed vai awk?

        Atbildēt
        • lauhub 2021. gada 6. janvāris 04:41

          Abi ir labākie:

          - sed ir noderīgs vienkāršiem nomaiņas/izdevuma uzdevumiem, un tam ir daži ierobežojumi sarežģītu uzdevumu programmēšanai (lai gan pieredzējuši lietotāji var darīt daudzas lietas)

          - awk ir jābūt daudzpusīgākam, lai veiktu vienkāršus uzdevumus, bet ļauj sarežģītākām programmām izmantot sarežģītākas datu struktūras.

          Jebkurā gadījumā viss ir atkarīgs no jūsu vajadzībām un zināšanām par šiem rīkiem

          Atbildēt
        • DC 2021. gada 16. jūlijs plkst. 09:17

          Abi ir funkcionāli atšķirīgi. sed ir ierobežota funkcionalitāte. Parasti izmanto, lai atrastu un aizstātu virkņu redaktoru.
          awk tiek izmantots datu manipulācijām un nodrošina vairāk programmēšanas funkcionalitātes

          Atbildēt
      2. Ahmeds 2020. gada 16. aprīlis plkst. 13:24

        Sveiki,
        Piemēri ir lieliski, taču būtu bijis labāk, ja jūs būtu ievietojis izlaidi arī pēc piemēra.

        Atbildēt
        • Rubaiat Hossain 2020. gada 18. aprīlis plkst. 01:28

          Paldies, Ahmed, ka tu paliec pie mums. Tomēr mēs baidāmies, ka katrai komandai pievienojot atsevišķus attēlus, ceļvedis būs ārkārtīgi garš, un tāpēc lietotāji, kas to lasa no maza ekrāna ierīcēm, piemēram, tālruņiem/planšetdatoriem, var saskarties ar nevēlamu ritināšanas pieredzi.

          Turklāt mēs mudinām mūsu lasītājus uzlabot šīs awk komandas Linux, atrodoties ceļā, un izmēģināt tās no pirmavotiem. Tādā veidā jūs tos apgūsit ātrāk.

          Atbildēt
      3. Stefans 2020. gada 6. aprīlī plkst. 10:54

        Lieliski piemēri. Paldies par šo

        Atbildēt
      4. Kārans Grovers 2020. gada 2. aprīlī plkst. 17:29

        jauki awk piemēri

        Atbildēt

      ATSTĀJ ATBILDI Atcelt atbildi

      Komentārs: Lūdzu, ievadiet savu komentāru! Vārds:* Lūdzu, ievadiet savu vārdu šeit E -pasts:* Jūs esat ievadījis nepareizu e -pasta adresi! Lūdzu, šeit ievadiet savu e -pasta adresi Vietne:

      Saglabājiet manu vārdu, e -pastu un vietni šajā pārlūkprogrammā, lai nākamreiz komentētu.

      spot_img

      Jaunākā ziņa

      Android

      10 labākās sejas maiņas lietotnes Android un iOS ierīcēm

      Windows OS

      Kā ieplānot Windows 10, lai automātiski iztukšotu atkritni

      Android

      10 labākās rēķinu izrakstīšanas lietotnes Android ierīcei, lai ātri samaksātu

      Windows OS

      10 labākās GPU etalona programmatūras jūsu datoram

      Vajag izlasīt

      Linux

      Kā instalēt un konfigurēt XAMPP operētājsistēmā Ubuntu Linux

      Linux

      Ubuntu Communitheme - Jauna Ubuntu kopienas tēma

      Linux

      Kā instalēt programmatūru no avota koda savā Linux sistēmā

      Linux

      RedNotebook - mūsdienīga un bezmaksas dienasgrāmatu un žurnālu programmatūra Linux

      Saistītā ziņa

      Kā instalēt un iestatīt kabīnes tīmekļa konsoli Linux sistēmā

      Kā instalēt un iestatīt Yii PHP Framework Ubuntu Linux

      Kā labot W: dažiem indeksa failiem neizdevās lejupielādēt kļūdu Ubuntu Linux

      Kā instalēt un iestatīt 1Password Linux darbvirsmā

      Kā instalēt jaunāko GNU Nano teksta redaktoru Linux darbvirsmā

      Kā instalēt jaunu relikvijas infrastruktūras aģentu Linux sistēmā

      ); }' /etc/passwd

      Iepriekš minētā komanda drukās kopējo rakstzīmju skaitu katrā ievades virknes vai faila rindā.

      25. Izdrukājiet visas līnijas ilgāk par noteikto garumu


      Iepriekšminētajai komandai mēs varam pievienot dažus nosacījumus un likt tai drukāt tikai tās rindas, kas ir lielākas par iepriekš noteiktu garumu. Tas ir noderīgi, ja jums jau ir priekšstats par konkrēta ieraksta garumu.

      $ echo 'A random text string...' | awk 'length(
      Mājas A-Z komandas 40 Praktiska un noderīga awk komanda Linux un BSD AutorsMehedi Hasan InA-Z komandasPiedāvātie 1271 7

      SATURS

      1. Izpratne par AWK programmām
      2. Praktiski awk komandu piemēri Linux
        1. 1. Izdrukājiet specifiskus laukus no teksta izvades
        2. 2. Drukājiet vairākus laukus no teksta izvades
        3. 3. Izmantojiet BEGIN paziņojumus
        4. 4. Izmantojiet END paziņojumus
        5. 5. Meklēšana, izmantojot modeļus
        6. 6. Izņemiet informāciju no failiem
        7. 7. Izlasiet AWK skriptu no avota faila
        8. 8. Iestatiet ievades lauka atdalītāju
        9. 9. Drukāt informāciju, pamatojoties uz stāvokli
        10. 10. Drukājiet informāciju, salīdzinot regulārās izteiksmes
        11. 11. Saskaitiet kopējo ievadīto rindu skaitu
        12. 12. Iestatiet izvades lauka atdalītāju
        13. 13. If Construct izmantošana
        14. 14. If-Else Constructs izmantošana
        15. 15. Iestatiet lauka platumu
        16. 16. Iestatiet ierakstu atdalītāju
        17. 17. Drukas vides mainīgie
        18. 18. Izlaist dažus laukus no izvades
        19. 19. Noņemiet tukšās līnijas
        20. 20. Noņemiet beigu atstarpes
        21. 21. Pārbaudiet lauku skaitu katrā rindā
        22. 22. Pārbaudiet pašreizējo faila nosaukumu
        23. 23. Pārbaudiet apstrādāto ierakstu skaitu
        24. 24. Izdrukājiet ierakstu kopējo rakstzīmju skaitu
        25. 25. Izdrukājiet visas līnijas ilgāk par noteikto garumu
        26. 26. Izdrukājiet rindu, rakstzīmju un vārdu skaitu
        27. 27. Aprēķiniet vārdu biežumu
        28. 28. Pārdēvēt failus, izmantojot AWK
        29. 29. Izdrukājiet skaitļa kvadrātsakni
        30. 30. Izdrukājiet skaitļa logaritmu
        31. 31. Izdrukājiet skaitļa eksponenciālu
        32. 32. Izveidojiet nejaušus skaitļus, izmantojot AWK
        33. 33. Krāsu sastādītāja brīdinājumi sarkanā krāsā
        34. 34. Izdrukājiet failu sistēmas UUID informāciju
        35. 35. Izdrukājiet Linux kodola attēla versiju
        36. 36. Pievienojiet rindu numurus pirms rindām
        37. 37. Izdrukājiet failu pēc satura kārtošanas
        38. 38. Izdrukājiet rokasgrāmatas lapu
        39. 39. Izdrukājiet palīdzības lapu
        40. 40. Informācija par drukas versiju
      3. Beigu domas

      AWK ir spēcīga> pilnvērtīga programmēšanas valoda . AWK savu nosaukumu ieguvis no tā autoru iniciāļiem - Aho, Veinbergera un Kernighana. Komanda awk Linux un citās Unix sistēmās izsauc tulku, kas palaiž AWK skriptus. Nesenās sistēmās pastāv vairākas awk ieviešanas, piemēram, gawk (GNU awk), mawk (Minimal awk) un nawk (New awk). Apskatiet tālāk sniegtos piemērus, ja vēlaties apgūt awk.

      Izpratne par AWK programmām


      Programmas, kas rakstītas awk, sastāv no noteikumiem, kas ir vienkārši modeļu un darbību pāris. Modeļi ir sagrupēti iekavās {}, un darbības daļa tiek aktivizēta ikreiz, kad awk atrod tekstam atbilstošus tekstus. Lai gan awk tika izstrādāts vienas līnijas rakstīšanai, pieredzējuši lietotāji ar to var viegli rakstīt sarežģītus skriptus.

      awk komanda Linux

      AWK programmas ir ļoti noderīgas liela mēroga failu apstrādei. Tas identificē teksta laukus, izmantojot speciālās rakstzīmes un atdalītājus. Tā piedāvā arī augsta līmeņa programmēšanas konstrukcijas, piemēram, masīvus un cilpas. Tāpēc ir ļoti iespējams rakstīt stabilas programmas, izmantojot vienkāršu awk.

      Praktiski awk komandu piemēri Linux


      Administratori parasti izmanto awk datu iegūšanai un ziņošanai kopā ar cita veida failu manipulācijām. Zemāk mēs detalizētāk apspriedām awk. Rūpīgi izpildiet komandas un izmēģiniet tās savā terminālī, lai iegūtu pilnīgu izpratni.

      1. Izdrukājiet specifiskus laukus no teksta izvades


      Visvairāk plaši izmantotas Linux komandas parādīt savus rezultātus, izmantojot dažādus laukus. Parasti mēs izmantojam Linux izgriešanas komandu, lai no šādiem datiem iegūtu noteiktu lauku. Tomēr zemāk esošā komanda parāda, kā to izdarīt, izmantojot komandu awk.

      $ who | awk '{print $1}'

      Šī komanda parādīs tikai pirmo lauku no komandas who izvades. Tātad jūs vienkārši iegūsit visu pašlaik reģistrēto lietotāju lietotājvārdus. Šeit, $ 1 apzīmē pirmo lauku. Jums ir jāizmanto $ N ja vēlaties iegūt N-to lauku.

      2. Drukājiet vairākus laukus no teksta izvades


      Awk tulks ļauj mums izdrukāt vēlamo lauku skaitu. Tālāk sniegtajos piemēros ir parādīts, kā iegūt pirmos divus laukus no komandas who izvades.

      $ who | awk '{print $1, $2}'

      Varat arī kontrolēt izvades lauku secību. Šajā piemērā vispirms tiek parādīta otrā sleja, ko izveidojusi komanda who, un pēc tam pirmā kolonna otrajā laukā.

      $ who | awk '{print $2, $1}'

      Vienkārši atstājiet laukā parametrus ( $ N ), lai parādītu visus datus.

      3. Izmantojiet BEGIN paziņojumus


      BEGIN paziņojums ļauj lietotājiem izvadē izdrukāt zināmu informāciju. To parasti izmanto awk ģenerēto izejas datu formatēšanai. Šī paziņojuma sintakse ir parādīta zemāk.

      BEGIN { Actions} {ACTION}

      Darbības, kas veido sadaļu SĀKT, vienmēr tiek aktivizētas. Tad awk izlasa atlikušās rindas pa vienai un redz, vai kaut kas ir jādara.

      $ who | awk 'BEGIN {print 'User	From'} {print $1, $2}'

      Iepriekš minētā komanda iezīmēs divus izvades laukus, kas iegūti no komandas izvades.

      4. Izmantojiet END paziņojumus


      Varat arī izmantot paziņojumu END, lai pārliecinātos, ka noteiktas darbības vienmēr tiek veiktas jūsu darbības beigās. Vienkārši ievietojiet sadaļu END pēc galvenā darbību kopuma.

      $ who | awk 'BEGIN {print 'User	From'} {print $1, $2} END {print '--COMPLETED--'}'

      Iepriekš minētā komanda pievienos norādīto virkni izvades beigās.

      5. Meklēšana, izmantojot modeļus


      Liela daļa awk darbu ir saistīta ar modeļu saskaņošanu un regulāro izteiksmi. Kā mēs jau esam apsprieduši, awk meklē modeļus katrā ievades rindā un veic darbību tikai tad, kad tiek aktivizēta atbilstība. Mūsu iepriekšējie noteikumi sastāvēja tikai no darbībām. Zemāk mēs esam ilustrējuši modeļu atbilstības pamatus, izmantojot Linux komandu awk.

      $ who | awk '/mary/ {print}'

      Šī komanda redzēs, vai lietotājs Marija pašlaik ir pieteicies vai nē. Ja tiks atrasta atbilstība, tā izvadīs visu rindu.

      6. Izņemiet informāciju no failiem


      Komanda awk ļoti labi darbojas ar failiem, un to var izmantot sarežģītiem failu apstrādes uzdevumiem. Šī komanda parāda, kā awk apstrādā failus.

      $ awk '/hello/ {print}' /usr/share/dict/american-english

      Šī komanda meklē modeli “sveiki” amerikāņu-angļu vārdnīcas failā. Tas ir pieejams lielākajā daļā Linux balstītas izplatīšanas . Tādējādi šajā failā varat viegli izmēģināt awk programmas.

      awk modeļa meklēšana

      7. Izlasiet AWK skriptu no avota faila


      Lai gan viena līnija programmu rakstīšana ir noderīga, jūs varat arī rakstīt lielas programmas, pilnībā izmantojot awk. Jūs vēlaties tos saglabāt un palaist programmu, izmantojot avota failu.

      $ awk -f script-file $ awk --file script-file

      The -f vai - fails opcija ļauj mums norādīt programmas failu. Tomēr jums nav jāizmanto pēdiņas (‘’) skripta faila iekšienē, jo Linux apvalks šādā veidā neskaidros programmas kodu.

      8. Iestatiet ievades lauka atdalītāju


      Lauku atdalītājs ir norobežotājs, kas sadala ievades ierakstu. Mēs varam viegli norādīt lauku atdalītājus awk, izmantojot -F vai -lauku atdalītājs iespēja. Pārbaudiet zemāk esošās komandas, lai redzētu, kā tas darbojas.

      $ echo 'This-is-a-simple-example' | awk -F - ' {print $1} ' $ echo 'This-is-a-simple-example' | awk --field-separator - ' {print $1} '

      Tas darbojas vienādi, ja Linux izmanto skripta failus, nevis vienu līniju awk komandu.

      9. Drukāt informāciju, pamatojoties uz stāvokli


      Esam apsprieduši Linux izgriešanas komanda iepriekšējā ceļvedī. Tagad mēs parādīsim, kā iegūt informāciju, izmantojot awk, tikai tad, ja ir noteikti kritēriji. Mēs izmantosim to pašu testa failu, ko izmantojām šajā rokasgrāmatā. Tāpēc dodieties tur un izveidojiet kopiju test.txt failu.

      $ awk '$4 > 50' test.txt

      Šī komanda izdrukās visas valstis no faila test.txt, kurā ir vairāk nekā 50 miljoni iedzīvotāju.

      10. Drukājiet informāciju, salīdzinot regulārās izteiksmes


      Šī awk komanda pārbauda, ​​vai jebkuras rindas trešais lauks satur rakstu “Lira”, un, ja tiek atrasta atbilstība, izdrukā visu rindu. Mēs atkal izmantojam failu test.txt, ko izmanto, lai ilustrētu Linux izgriešanas komanda . Tāpēc pirms turpināt, pārliecinieties, vai esat ieguvis šo failu.

      $ awk '$3 ~ /Lira/' test.txt

      Ja vēlaties, varat drukāt tikai noteiktu daļu no jebkuras spēles.

      11. Saskaitiet kopējo ievadīto rindu skaitu


      Komandai awk ir daudz speciālu mainīgo, kas ļauj mums viegli veikt daudzas uzlabotas lietas. Viens no šādiem mainīgajiem ir NR, kas satur pašreizējo rindas numuru.

      $ awk 'END {print NR} ' test.txt

      Šī komanda izvadīs, cik rindu ir mūsu failā test.txt. Tas vispirms atkārtojas pa katru rindu, un, kad tas ir sasniedzis END, tas izdrukās NR vērtību, kas šajā gadījumā satur kopējo rindu skaitu.

      12. Iestatiet izvades lauka atdalītāju


      Iepriekš mēs esam parādījuši, kā atlasīt ievades lauku atdalītājus, izmantojot -F vai -lauku atdalītājs iespēja. Komanda awk arī ļauj mums norādīt izvades lauku atdalītāju. Zemāk redzamais piemērs to parāda, izmantojot praktisku piemēru.

      $ date | awk 'OFS='-' {print$2,$3,$6}'

      Šī komanda izdrukā pašreizējo datumu, izmantojot formātu dd-mm-yy. Palaidiet datuma programmu bez awk, lai redzētu, kā izskatās noklusējuma izvade.

      13. If Construct izmantošana


      Tāpat kā citi populāras programmēšanas valodas , awk arī nodrošina lietotājus ar if-else konstrukcijām. Ja paziņojumam awk ir šāda sintakse.

      if (expression) { first_action second_action }

      Atbilstošās darbības tiek veiktas tikai tad, ja nosacījuma izteiksme ir patiesa. Zemāk redzamais piemērs to parāda, izmantojot mūsu atsauces failu test.txt .

      $ awk '{ if ($4>100) print }' test.txt

      Jums nav stingri jāuztur ievilkums.

      14. If-Else Constructs izmantošana


      Izmantojot zemāk esošo sintaksi, varat izveidot noderīgas trepes. Tie ir noderīgi, izstrādājot sarežģītus awk skriptus, kas attiecas uz dinamiskiem datiem.

      if (expression) first_action else second_action
      $ awk '{ if ($4>100) print; else print }' test.txt

      Iepriekš minētā komanda drukās visu atsauces failu, jo ceturtais lauks katrai rindai nav lielāks par 100.

      15. Iestatiet lauka platumu


      Dažreiz ievades dati ir diezgan netīri, un lietotājiem var būt grūti tos vizualizēt savos pārskatos. Par laimi, awk nodrošina jaudīgu iebūvētu mainīgo FIELDWIDTHS, kas ļauj mums definēt ar atstarpēm atdalītu platumu sarakstu.

      $ echo 5675784464657 | awk 'BEGIN {FIELDWIDTHS= '3 4 5'} {print $1, $2, $3}'

      Tas ir ļoti noderīgi, analizējot izkliedētos datus, jo mēs varam kontrolēt izvades lauka platumu tieši tā, kā vēlamies.

      lauka platums awk

      16. Iestatiet ierakstu atdalītāju


      RS vai ierakstu atdalītājs ir vēl viens iebūvēts mainīgais, kas ļauj mums norādīt, kā ieraksti tiek atdalīti. Vispirms izveidosim failu, kas parādīs šī awk mainīgā darbību.

      $ cat new.txt Melinda James 23 New Hampshire (222) 466-1234 Daniel James 99 Phonenix Road (322) 677-3412
      $ awk 'BEGIN{FS='
      '; RS=''} {print $1,$3}' new.txt

      Šī komanda parsēs dokumentu un izslēgs abu personu vārdu un adresi.

      17. Drukas vides mainīgie


      Komanda awk Linux ļauj mums viegli izdrukāt vides mainīgos, izmantojot mainīgo ENVIRON. Zemāk esošā komanda parāda, kā to izmantot, lai izdrukātu mainīgā PATH saturu.

      $ awk 'BEGIN{ print ENVIRON['PATH'] }'

      Varat izdrukāt jebkura vides mainīgā saturu, aizstājot mainīgā ENVIRON argumentu. Zemāk esošā komanda izdrukā vides mainīgā HOME vērtību.

      $ awk 'BEGIN{ print ENVIRON['HOME'] }'

      18. Izlaist dažus laukus no izvades


      Komanda awk ļauj mums izlaist noteiktas rindas no mūsu izvades. Šī komanda to parādīs, izmantojot mūsu atsauces failu test.txt .

      $ awk -F':' '{$2=''; print}' test.txt

      Šī komanda izlaidīs mūsu faila otro kolonnu, kurā ir katras valsts galvaspilsētas nosaukums. Varat arī izlaist vairākus laukus, kā parādīts nākamajā komandā.

      $ awk -F':' '{$2='';$3='';print}' test.txt

      19. Noņemiet tukšās līnijas


      Dažreiz dati var saturēt pārāk daudz tukšu rindu. Jūs varat izmantot komandu awk, lai diezgan viegli noņemtu tukšās rindas. Pārbaudiet nākamo komandu, lai redzētu, kā tas darbojas praksē.

      $ awk '/^[ 	]*$/{next}{print}' new.txt

      Mēs esam noņēmuši visas tukšās rindas no faila new.txt, izmantojot vienkāršu regulāro izteiksmi un iebūvēto awk, ko sauc par nākamo.

      20. Noņemiet beigu atstarpes


      Daudzu Linux komandu izvade satur beigu atstarpes. Mēs varam izmantot komandu awk operētājsistēmā Linux, lai noņemtu tādas atstarpes kā atstarpes un cilnes. Pārbaudiet zemāk esošo komandu, lai uzzinātu, kā risināt šādas problēmas, izmantojot awk.

      $ awk '{sub(/[ 	]*$/, '');print}' new.txt test.txt

      Pievienojiet mūsu atsauces failiem dažas atstarpes un pārbaudiet, vai awk tās ir veiksmīgi noņemtas. Tas manā mašīnā to izdarīja veiksmīgi.

      21. Pārbaudiet lauku skaitu katrā rindā


      Mēs varam viegli pārbaudīt, cik lauku ir rindā, izmantojot vienkāršu awk one-liner. Ir daudz veidu, kā to izdarīt, taču šim uzdevumam mēs izmantosim dažus no awk iebūvētajiem mainīgajiem. Mainīgais NR dod mums rindas numuru, un NF mainīgais nodrošina lauku skaitu.

      $ awk '{print NR,'-->',NF}' test.txt

      Tagad mēs varam apstiprināt, cik daudz lauku ir katrā rindā test.txt dokuments. Tā kā katra šī faila rinda satur 5 laukus, mēs esam pārliecināti, ka komanda darbojas, kā paredzēts.

      22. Pārbaudiet pašreizējo faila nosaukumu


      Awk mainīgais FILENAME tiek izmantots pašreizējā ievades faila nosaukuma pārbaudei. Mēs demonstrējam, kā tas darbojas, izmantojot vienkāršu piemēru. Tomēr tas var būt noderīgi situācijās, kad faila nosaukums nav skaidri zināms vai ja ir vairāk nekā viens ievades fails.

      $ awk '{print FILENAME}' test.txt $ awk '{print FILENAME}' test.txt new.txt

      Iepriekš minētās komandas izdrukā faila nosaukumu awk, ar kuru strādā, katru reizi, kad tiek apstrādāta jauna ievades failu rinda.

      23. Pārbaudiet apstrādāto ierakstu skaitu


      Šis piemērs parādīs, kā mēs varam pārbaudīt ierakstu skaitu, ko apstrādā komanda awk. Tā kā liels skaits Linux sistēmas administratoru pārskatu ģenerēšanai izmanto awk, tas viņiem ir ļoti noderīgi.

      $ awk '{print 'Processing Record - ',NR;} END {print '
      Total Records Processed:', NR;}' test.txt

      Es bieži izmantoju šo awk fragmentu, lai iegūtu skaidru pārskatu par savām darbībām. Jūs varat to viegli pielāgot, lai pielāgotos jaunām idejām vai darbībām.

      apstrādāto rindu skaits awk

      24. Izdrukājiet ierakstu kopējo rakstzīmju skaitu


      Awk valoda nodrošina ērtu funkciju garums (), kas norāda, cik rakstzīmju ir ierakstā. Tas ir ļoti noderīgi vairākos scenārijos. Ātri apskatiet šo piemēru, lai redzētu, kā tas darbojas.

      $ echo 'A random text string...' | awk '{ print length($0); }'
      $ awk '{ print length($0); }' /etc/passwd

      Iepriekš minētā komanda drukās kopējo rakstzīmju skaitu katrā ievades virknes vai faila rindā.

      25. Izdrukājiet visas līnijas ilgāk par noteikto garumu


      Iepriekšminētajai komandai mēs varam pievienot dažus nosacījumus un likt tai drukāt tikai tās rindas, kas ir lielākas par iepriekš noteiktu garumu. Tas ir noderīgi, ja jums jau ir priekšstats par konkrēta ieraksta garumu.

      $ echo 'A random text string...' | awk 'length($0) > 10'
      $ awk '{ length($0) > 5; }' /etc/passwd

      Jūs varat izmantot vairāk iespēju un/vai argumentu, lai pielāgotu komandu, pamatojoties uz jūsu prasībām.

      26. Izdrukājiet rindu, rakstzīmju un vārdu skaitu


      Šī Linux komanda awk izdrukā rindu, rakstzīmju un vārdu skaitu noteiktā ievadē. Šīs darbības veikšanai tiek izmantots mainīgais NR, kā arī dažas pamata aritmētikas.

      $ echo 'This is a input line...' | awk '{ w += NF; c += length + 1 } END { print NR, w, c }'

      Tas parāda, ka ievades virknē ir 1 rinda, 5 vārdi un tieši 24 rakstzīmes.

      27. Aprēķiniet vārdu biežumu


      Mēs varam apvienot asociatīvos masīvus un for ciklu in awk, lai aprēķinātu dokumenta vārdu biežumu. Šī komanda var šķist nedaudz sarežģīta, taču tā ir diezgan vienkārša, kad skaidri saprotat pamatkonstrukcijas.

      $ awk 'BEGIN {FS='[^a-zA-Z]+' } { for (i=1; i<=NF; i++) words[tolower($i)]++ } END { for (i in words) print i, words[i] }' test.txt

      Ja jums ir problēmas ar vienas līnijas fragmentu, nokopējiet šo kodu jaunā failā un palaidiet to, izmantojot avotu.

      $ cat > frequency.awk BEGIN { FS='[^a-zA-Z]+' } { for (i=1; i<=NF; i++) words[tolower($i)]++ } END { for (i in words) print i, words[i] }

      Pēc tam palaidiet to, izmantojot -f iespēja.

      $ awk -f frequency.awk test.txt

      28. Pārdēvēt failus, izmantojot AWK


      Komandu awk var izmantot, lai pārdēvētu visus failus, kas atbilst noteiktiem kritērijiem. Šī komanda parāda, kā izmantot awk, lai pārdēvētu visus direktorijā esošos .MP3 failus uz .mp3 failiem.

      $ touch {a,b,c,d,e}.MP3 $ ls *.MP3 | awk '{ printf('mv '%s' '%s'
      ', $0, tolower($0)) }' $ ls *.MP3 | awk '{ printf('mv '%s' '%s'
      ', $0, tolower($0)) }' | sh

      Pirmkārt, mēs izveidojām dažus demonstrācijas failus ar paplašinājumu .MP3. Otrā komanda parāda lietotājam, kas notiek, ja pārdēvēšana ir veiksmīga. Visbeidzot, pēdējā komanda pārdēvē operāciju, izmantojot Linux komandu mv.

      29. Izdrukājiet skaitļa kvadrātsakni


      AWK piedāvā vairākas iebūvētas funkcijas ciparu manipulēšanai. Viens no tiem ir funkcija sqrt (). Tā ir C līdzīga funkcija, kas atgriež dotā skaitļa kvadrātsakni. Ātri apskatiet nākamo piemēru, lai redzētu, kā tas darbojas kopumā.

      $ awk 'BEGIN{ print sqrt(36); print sqrt(0); print sqrt(-16) }'

      Tā kā jūs nevarat noteikt negatīvā skaitļa kvadrātsakni, izvadē sqrt (-12) vietā tiks parādīts īpašs atslēgvārds ar nosaukumu “nan”.

      sqrt funkcija Linux awk komandā

      30. Izdrukājiet skaitļa logaritmu


      Funkcijas žurnāls awk () nodrošina skaitļa dabisko logaritmu. Tomēr tas darbosies tikai ar pozitīviem skaitļiem, tāpēc ņemiet vērā lietotāju ievades apstiprināšanu. Pretējā gadījumā kāds var pārtraukt jūsu awk programmas un iegūt priviliģētu piekļuvi sistēmas resursiem.

      $ awk 'BEGIN{ print log(36); print log(0); print log(-16) }'

      Jums vajadzētu redzēt logaritmu 36 un pārbaudīt, vai logaritms 0 ir bezgalība, un negatīvās vērtības žurnāls ir “Nav skaitlis” vai nan.

      31. Izdrukājiet skaitļa eksponenciālu


      Eksponenciālais os a skaitlis n nodrošina e^n vērtību. To parasti izmanto awk skriptos, kas nodarbojas ar lieliem cipariem vai sarežģītu aritmētisko loģiku. Mēs varam ģenerēt skaitļa eksponenciālu, izmantojot iebūvēto awk funkciju exp ().

      $ awk 'BEGIN{ print exp(30); print log(0); print exp(-16) }'

      Tomēr awk nevar aprēķināt eksponenciālu lieliem skaitļiem. Jums vajadzētu veikt šādus aprēķinus, izmantojot zema līmeņa programmēšanas valodas, piemēram, C, un norādīt vērtību saviem awk skriptiem.

      32. Izveidojiet nejaušus skaitļus, izmantojot AWK


      Mēs varam izmantot komandu awk Linux, lai ģenerētu nejaušus skaitļus. Šie skaitļi būs diapazonā no 0 līdz 1, bet nekad 0 vai 1. Jūs varat reizināt fiksētu vērtību ar iegūto skaitli, lai iegūtu lielāku izlases vērtību.

      $ awk 'BEGIN{ print rand(); print rand()*99 }'

      Funkcijai rand () nav nepieciešami argumenti. Turklāt šīs funkcijas radītie skaitļi nav precīzi nejauši, bet drīzāk pseidogadījumi. Turklāt ir diezgan viegli paredzēt šos skaitļus no skriešanas uz skrējienu. Tāpēc jums nevajadzētu paļauties uz tiem, veicot sensitīvus aprēķinus.

      33. Krāsu sastādītāja brīdinājumi sarkanā krāsā


      Mūsdienu Linux kompilatori brīdinās, ja jūsu kods nesaglabā valodas standartus vai ja tajā ir kļūdas, kas neaptur programmas izpildi. Šī komanda awk sarkanā krāsā drukās kompilatora ģenerētās brīdinājuma līnijas.

      $ gcc -Wall main.c |& awk '/: warning:/{print 'x1B[01;31m' $0 'x1B[m';next;}{print}'

      Šī komanda ir noderīga, ja vēlaties precīzi noteikt kompilatora brīdinājumus. Šo komandu varat izmantot ar jebkuru kompilatoru, izņemot gcc, vienkārši mainiet modeli /: brīdinājums: /, lai atspoguļotu konkrēto kompilatoru.

      34. Izdrukājiet failu sistēmas UUID informāciju


      UUID vai Universāli unikāls identifikators ir skaitlis, ko var izmantot, lai identificētu tādus resursus kā Linux failu sistēma . Mēs varam vienkārši izdrukāt mūsu failu sistēmas UUID informāciju, izmantojot šādu Linux awk komandu.

      $ awk '/UUID/ {print $0}' /etc/fstab

      Šī komanda meklē tekstu UUID /etc/fstab failu, izmantojot awk modeļus. Tas atgriež komentāru no faila, kas mūs neinteresē. Zemāk esošā komanda nodrošinās, ka mēs saņemam tikai tās rindas, kas sākas ar UUID.

      $ awk '/^UUID/ {print $1}' /etc/fstab

      Tas ierobežo izvadi līdz pirmajam laukam. Tātad mēs iegūstam tikai UUID numurus.

      35. Izdrukājiet Linux kodola attēla versiju


      Tiek izmantoti dažādi Linux kodola attēli dažādi Linux izplatījumi . Mēs varam viegli izdrukāt precīzu kodola attēlu, uz kura balstās mūsu sistēma, izmantojot awk. Pārbaudiet šo komandu, lai redzētu, kā tas darbojas kopumā.

      $ uname -a | awk '{print $3}'

      Mēs vispirms esam izdevuši komandu uname ar -uz opciju un pēc tam pārsūtīja šos datus uz awk. Tad mēs esam ieguvuši kodola attēla versijas informāciju, izmantojot awk.

      36. Pievienojiet rindu numurus pirms rindām


      Lietotāji diezgan bieži var saskarties ar teksta failiem, kas nesatur rindu numurus. Par laimi, jūs varat viegli pievienot rindu numurus failam, izmantojot Linux komandu awk. Rūpīgi apskatiet zemāk redzamo piemēru, lai redzētu, kā tas darbojas reālajā dzīvē.

      $ awk '{ print FNR '. ' $0 ;next}{print}' test.txt

      Iepriekš minētā komanda pievienos rindas numuru pirms katras mūsu test.txt atsauces faila rindas. Lai to novērstu, tas izmanto iebūvēto awk mainīgo FNR.

      pievienojiet rindu numurus, izmantojot komandu awk

      37. Izdrukājiet failu pēc satura kārtošanas


      Mēs varam arī izmantot awk, lai izdrukātu sakārtotu visu rindu sarakstu. Šīs komandas drukā visu mūsu test.txt valstu nosaukumu sakārtotā secībā.

      $ awk -F ':' '{ print $1 }' test.txt | sort

      Nākamā komanda drukās visu lietotāju pieteikšanās vārdu no /etc/passwd failu.

      $ awk -F ':' '{ print $1 }' /etc/passwd | sort

      Jūs varat viegli mainīt kārtošanas kārtību, mainot kārtošanas komandu.

      38. Izdrukājiet rokasgrāmatas lapu


      Rokasgrāmatas lapā ir detalizēta informācija par komandu awk, kā arī visas pieejamās iespējas. Tas ir ārkārtīgi svarīgi cilvēkiem, kuri vēlas rūpīgi apgūt awk komandu.

      $ man awk

      Ja vēlaties apgūt sarežģītas awk funkcijas, tas jums ļoti palīdzēs. Iepazīstieties ar šo dokumentāciju ikreiz, kad esat saskāries ar problēmu.

      39. Izdrukājiet palīdzības lapu


      Palīdzības lapā ir apkopota informācija par visiem iespējamiem komandrindas argumentiem. Varat izsaukt palīdzības ceļvedi, lai iegūtu awk, izmantojot vienu no šīm komandām.

      $ awk -h $ awk --help

      Skatiet šo lapu, ja vēlaties ātri apskatīt visas pieejamās awk iespējas.

      40. Informācija par drukas versiju


      Versijas informācija sniedz mums informāciju par programmu veidošanu. Awk versijas lapā ir tāda informācija kā autortiesības, apkopošanas rīki utt. Šo informāciju varat skatīt, izmantojot vienu no šīm awk komandām.

      $ awk -V $ awk --version

      Beigu domas


      Komanda awk operētājsistēmā Linux ļauj mums veikt visu veidu lietas, tostarp failu apstrādi un sistēmas uzturēšanu. Tas nodrošina daudzveidīgu darbību klāstu, lai diezgan viegli tiktu galā ar ikdienas skaitļošanas uzdevumiem. Mūsu redaktori ir apkopojuši šo rokasgrāmatu ar 40 noderīgām awk komandām, kuras var izmantot teksta manipulācijām vai administrēšanai. Tā kā AWK pati par sevi ir pilnvērtīga programmēšanas valoda, ir vairāki veidi, kā veikt vienu un to pašu darbu. Tāpēc nebrīnieties, kāpēc mēs dažas lietas darām citādi. Jūs vienmēr varat apkopot savas receptes, pamatojoties uz savu prasmju kopumu un pieredzi. Ja jums ir kādi jautājumi, atstājiet mums savas domas.

      • Tagi
      • Programmēšanas rīki
      • Sistēmas utilītas rīki
      Kopīgot Facebook Twitter Pinterest WhatsApp ReddIt Telegramma Viber

        7 KOMENTĀRI

        1. Ramesh 2020. gada 24. aprīlis plkst. 07:48

          Kas ir labākais sed vai awk?

          Atbildēt
          • lauhub 2021. gada 6. janvāris 04:41

            Abi ir labākie:

            - sed ir noderīgs vienkāršiem nomaiņas/izdevuma uzdevumiem, un tam ir daži ierobežojumi sarežģītu uzdevumu programmēšanai (lai gan pieredzējuši lietotāji var darīt daudzas lietas)

            - awk ir jābūt daudzpusīgākam, lai veiktu vienkāršus uzdevumus, bet ļauj sarežģītākām programmām izmantot sarežģītākas datu struktūras.

            Jebkurā gadījumā viss ir atkarīgs no jūsu vajadzībām un zināšanām par šiem rīkiem

            Atbildēt
          • DC 2021. gada 16. jūlijs plkst. 09:17

            Abi ir funkcionāli atšķirīgi. sed ir ierobežota funkcionalitāte. Parasti izmanto, lai atrastu un aizstātu virkņu redaktoru.
            awk tiek izmantots datu manipulācijām un nodrošina vairāk programmēšanas funkcionalitātes

            Atbildēt
        2. Ahmeds 2020. gada 16. aprīlis plkst. 13:24

          Sveiki,
          Piemēri ir lieliski, taču būtu bijis labāk, ja jūs būtu ievietojis izlaidi arī pēc piemēra.

          Atbildēt
          • Rubaiat Hossain 2020. gada 18. aprīlis plkst. 01:28

            Paldies, Ahmed, ka tu paliec pie mums. Tomēr mēs baidāmies, ka katrai komandai pievienojot atsevišķus attēlus, ceļvedis būs ārkārtīgi garš, un tāpēc lietotāji, kas to lasa no maza ekrāna ierīcēm, piemēram, tālruņiem/planšetdatoriem, var saskarties ar nevēlamu ritināšanas pieredzi.

            Turklāt mēs mudinām mūsu lasītājus uzlabot šīs awk komandas Linux, atrodoties ceļā, un izmēģināt tās no pirmavotiem. Tādā veidā jūs tos apgūsit ātrāk.

            Atbildēt
        3. Stefans 2020. gada 6. aprīlī plkst. 10:54

          Lieliski piemēri. Paldies par šo

          Atbildēt
        4. Kārans Grovers 2020. gada 2. aprīlī plkst. 17:29

          jauki awk piemēri

          Atbildēt

        ATSTĀJ ATBILDI Atcelt atbildi

        Komentārs: Lūdzu, ievadiet savu komentāru! Vārds:* Lūdzu, ievadiet savu vārdu šeit E -pasts:* Jūs esat ievadījis nepareizu e -pasta adresi! Lūdzu, šeit ievadiet savu e -pasta adresi Vietne:

        Saglabājiet manu vārdu, e -pastu un vietni šajā pārlūkprogrammā, lai nākamreiz komentētu.

        spot_img

        Jaunākā ziņa

        Android

        10 labākās sejas maiņas lietotnes Android un iOS ierīcēm

        Windows OS

        Kā ieplānot Windows 10, lai automātiski iztukšotu atkritni

        Android

        10 labākās rēķinu izrakstīšanas lietotnes Android ierīcei, lai ātri samaksātu

        Windows OS

        10 labākās GPU etalona programmatūras jūsu datoram

        Vajag izlasīt

        Linux

        Kā instalēt un konfigurēt XAMPP operētājsistēmā Ubuntu Linux

        Linux

        Ubuntu Communitheme - Jauna Ubuntu kopienas tēma

        Linux

        Kā instalēt programmatūru no avota koda savā Linux sistēmā

        Linux

        RedNotebook - mūsdienīga un bezmaksas dienasgrāmatu un žurnālu programmatūra Linux

        Saistītā ziņa

        Kā instalēt un iestatīt kabīnes tīmekļa konsoli Linux sistēmā

        Kā instalēt un iestatīt Yii PHP Framework Ubuntu Linux

        Kā labot W: dažiem indeksa failiem neizdevās lejupielādēt kļūdu Ubuntu Linux

        Kā instalēt un iestatīt 1Password Linux darbvirsmā

        Kā instalēt jaunāko GNU Nano teksta redaktoru Linux darbvirsmā

        Kā instalēt jaunu relikvijas infrastruktūras aģentu Linux sistēmā

        ) > 10'
        $ awk '{ length(
        Mājas A-Z komandas 40 Praktiska un noderīga awk komanda Linux un BSD AutorsMehedi Hasan InA-Z komandasPiedāvātie 1271 7

        SATURS

        1. Izpratne par AWK programmām
        2. Praktiski awk komandu piemēri Linux
          1. 1. Izdrukājiet specifiskus laukus no teksta izvades
          2. 2. Drukājiet vairākus laukus no teksta izvades
          3. 3. Izmantojiet BEGIN paziņojumus
          4. 4. Izmantojiet END paziņojumus
          5. 5. Meklēšana, izmantojot modeļus
          6. 6. Izņemiet informāciju no failiem
          7. 7. Izlasiet AWK skriptu no avota faila
          8. 8. Iestatiet ievades lauka atdalītāju
          9. 9. Drukāt informāciju, pamatojoties uz stāvokli
          10. 10. Drukājiet informāciju, salīdzinot regulārās izteiksmes
          11. 11. Saskaitiet kopējo ievadīto rindu skaitu
          12. 12. Iestatiet izvades lauka atdalītāju
          13. 13. If Construct izmantošana
          14. 14. If-Else Constructs izmantošana
          15. 15. Iestatiet lauka platumu
          16. 16. Iestatiet ierakstu atdalītāju
          17. 17. Drukas vides mainīgie
          18. 18. Izlaist dažus laukus no izvades
          19. 19. Noņemiet tukšās līnijas
          20. 20. Noņemiet beigu atstarpes
          21. 21. Pārbaudiet lauku skaitu katrā rindā
          22. 22. Pārbaudiet pašreizējo faila nosaukumu
          23. 23. Pārbaudiet apstrādāto ierakstu skaitu
          24. 24. Izdrukājiet ierakstu kopējo rakstzīmju skaitu
          25. 25. Izdrukājiet visas līnijas ilgāk par noteikto garumu
          26. 26. Izdrukājiet rindu, rakstzīmju un vārdu skaitu
          27. 27. Aprēķiniet vārdu biežumu
          28. 28. Pārdēvēt failus, izmantojot AWK
          29. 29. Izdrukājiet skaitļa kvadrātsakni
          30. 30. Izdrukājiet skaitļa logaritmu
          31. 31. Izdrukājiet skaitļa eksponenciālu
          32. 32. Izveidojiet nejaušus skaitļus, izmantojot AWK
          33. 33. Krāsu sastādītāja brīdinājumi sarkanā krāsā
          34. 34. Izdrukājiet failu sistēmas UUID informāciju
          35. 35. Izdrukājiet Linux kodola attēla versiju
          36. 36. Pievienojiet rindu numurus pirms rindām
          37. 37. Izdrukājiet failu pēc satura kārtošanas
          38. 38. Izdrukājiet rokasgrāmatas lapu
          39. 39. Izdrukājiet palīdzības lapu
          40. 40. Informācija par drukas versiju
        3. Beigu domas

        AWK ir spēcīga> pilnvērtīga programmēšanas valoda . AWK savu nosaukumu ieguvis no tā autoru iniciāļiem - Aho, Veinbergera un Kernighana. Komanda awk Linux un citās Unix sistēmās izsauc tulku, kas palaiž AWK skriptus. Nesenās sistēmās pastāv vairākas awk ieviešanas, piemēram, gawk (GNU awk), mawk (Minimal awk) un nawk (New awk). Apskatiet tālāk sniegtos piemērus, ja vēlaties apgūt awk.

        Izpratne par AWK programmām


        Programmas, kas rakstītas awk, sastāv no noteikumiem, kas ir vienkārši modeļu un darbību pāris. Modeļi ir sagrupēti iekavās {}, un darbības daļa tiek aktivizēta ikreiz, kad awk atrod tekstam atbilstošus tekstus. Lai gan awk tika izstrādāts vienas līnijas rakstīšanai, pieredzējuši lietotāji ar to var viegli rakstīt sarežģītus skriptus.

        awk komanda Linux

        AWK programmas ir ļoti noderīgas liela mēroga failu apstrādei. Tas identificē teksta laukus, izmantojot speciālās rakstzīmes un atdalītājus. Tā piedāvā arī augsta līmeņa programmēšanas konstrukcijas, piemēram, masīvus un cilpas. Tāpēc ir ļoti iespējams rakstīt stabilas programmas, izmantojot vienkāršu awk.

        Praktiski awk komandu piemēri Linux


        Administratori parasti izmanto awk datu iegūšanai un ziņošanai kopā ar cita veida failu manipulācijām. Zemāk mēs detalizētāk apspriedām awk. Rūpīgi izpildiet komandas un izmēģiniet tās savā terminālī, lai iegūtu pilnīgu izpratni.

        1. Izdrukājiet specifiskus laukus no teksta izvades


        Visvairāk plaši izmantotas Linux komandas parādīt savus rezultātus, izmantojot dažādus laukus. Parasti mēs izmantojam Linux izgriešanas komandu, lai no šādiem datiem iegūtu noteiktu lauku. Tomēr zemāk esošā komanda parāda, kā to izdarīt, izmantojot komandu awk.

        $ who | awk '{print $1}'

        Šī komanda parādīs tikai pirmo lauku no komandas who izvades. Tātad jūs vienkārši iegūsit visu pašlaik reģistrēto lietotāju lietotājvārdus. Šeit, $ 1 apzīmē pirmo lauku. Jums ir jāizmanto $ N ja vēlaties iegūt N-to lauku.

        2. Drukājiet vairākus laukus no teksta izvades


        Awk tulks ļauj mums izdrukāt vēlamo lauku skaitu. Tālāk sniegtajos piemēros ir parādīts, kā iegūt pirmos divus laukus no komandas who izvades.

        $ who | awk '{print $1, $2}'

        Varat arī kontrolēt izvades lauku secību. Šajā piemērā vispirms tiek parādīta otrā sleja, ko izveidojusi komanda who, un pēc tam pirmā kolonna otrajā laukā.

        $ who | awk '{print $2, $1}'

        Vienkārši atstājiet laukā parametrus ( $ N ), lai parādītu visus datus.

        3. Izmantojiet BEGIN paziņojumus


        BEGIN paziņojums ļauj lietotājiem izvadē izdrukāt zināmu informāciju. To parasti izmanto awk ģenerēto izejas datu formatēšanai. Šī paziņojuma sintakse ir parādīta zemāk.

        BEGIN { Actions} {ACTION}

        Darbības, kas veido sadaļu SĀKT, vienmēr tiek aktivizētas. Tad awk izlasa atlikušās rindas pa vienai un redz, vai kaut kas ir jādara.

        $ who | awk 'BEGIN {print 'User	From'} {print $1, $2}'

        Iepriekš minētā komanda iezīmēs divus izvades laukus, kas iegūti no komandas izvades.

        4. Izmantojiet END paziņojumus


        Varat arī izmantot paziņojumu END, lai pārliecinātos, ka noteiktas darbības vienmēr tiek veiktas jūsu darbības beigās. Vienkārši ievietojiet sadaļu END pēc galvenā darbību kopuma.

        $ who | awk 'BEGIN {print 'User	From'} {print $1, $2} END {print '--COMPLETED--'}'

        Iepriekš minētā komanda pievienos norādīto virkni izvades beigās.

        5. Meklēšana, izmantojot modeļus


        Liela daļa awk darbu ir saistīta ar modeļu saskaņošanu un regulāro izteiksmi. Kā mēs jau esam apsprieduši, awk meklē modeļus katrā ievades rindā un veic darbību tikai tad, kad tiek aktivizēta atbilstība. Mūsu iepriekšējie noteikumi sastāvēja tikai no darbībām. Zemāk mēs esam ilustrējuši modeļu atbilstības pamatus, izmantojot Linux komandu awk.

        $ who | awk '/mary/ {print}'

        Šī komanda redzēs, vai lietotājs Marija pašlaik ir pieteicies vai nē. Ja tiks atrasta atbilstība, tā izvadīs visu rindu.

        6. Izņemiet informāciju no failiem


        Komanda awk ļoti labi darbojas ar failiem, un to var izmantot sarežģītiem failu apstrādes uzdevumiem. Šī komanda parāda, kā awk apstrādā failus.

        $ awk '/hello/ {print}' /usr/share/dict/american-english

        Šī komanda meklē modeli “sveiki” amerikāņu-angļu vārdnīcas failā. Tas ir pieejams lielākajā daļā Linux balstītas izplatīšanas . Tādējādi šajā failā varat viegli izmēģināt awk programmas.

        awk modeļa meklēšana

        7. Izlasiet AWK skriptu no avota faila


        Lai gan viena līnija programmu rakstīšana ir noderīga, jūs varat arī rakstīt lielas programmas, pilnībā izmantojot awk. Jūs vēlaties tos saglabāt un palaist programmu, izmantojot avota failu.

        $ awk -f script-file $ awk --file script-file

        The -f vai - fails opcija ļauj mums norādīt programmas failu. Tomēr jums nav jāizmanto pēdiņas (‘’) skripta faila iekšienē, jo Linux apvalks šādā veidā neskaidros programmas kodu.

        8. Iestatiet ievades lauka atdalītāju


        Lauku atdalītājs ir norobežotājs, kas sadala ievades ierakstu. Mēs varam viegli norādīt lauku atdalītājus awk, izmantojot -F vai -lauku atdalītājs iespēja. Pārbaudiet zemāk esošās komandas, lai redzētu, kā tas darbojas.

        $ echo 'This-is-a-simple-example' | awk -F - ' {print $1} ' $ echo 'This-is-a-simple-example' | awk --field-separator - ' {print $1} '

        Tas darbojas vienādi, ja Linux izmanto skripta failus, nevis vienu līniju awk komandu.

        9. Drukāt informāciju, pamatojoties uz stāvokli


        Esam apsprieduši Linux izgriešanas komanda iepriekšējā ceļvedī. Tagad mēs parādīsim, kā iegūt informāciju, izmantojot awk, tikai tad, ja ir noteikti kritēriji. Mēs izmantosim to pašu testa failu, ko izmantojām šajā rokasgrāmatā. Tāpēc dodieties tur un izveidojiet kopiju test.txt failu.

        $ awk '$4 > 50' test.txt

        Šī komanda izdrukās visas valstis no faila test.txt, kurā ir vairāk nekā 50 miljoni iedzīvotāju.

        10. Drukājiet informāciju, salīdzinot regulārās izteiksmes


        Šī awk komanda pārbauda, ​​vai jebkuras rindas trešais lauks satur rakstu “Lira”, un, ja tiek atrasta atbilstība, izdrukā visu rindu. Mēs atkal izmantojam failu test.txt, ko izmanto, lai ilustrētu Linux izgriešanas komanda . Tāpēc pirms turpināt, pārliecinieties, vai esat ieguvis šo failu.

        $ awk '$3 ~ /Lira/' test.txt

        Ja vēlaties, varat drukāt tikai noteiktu daļu no jebkuras spēles.

        11. Saskaitiet kopējo ievadīto rindu skaitu


        Komandai awk ir daudz speciālu mainīgo, kas ļauj mums viegli veikt daudzas uzlabotas lietas. Viens no šādiem mainīgajiem ir NR, kas satur pašreizējo rindas numuru.

        $ awk 'END {print NR} ' test.txt

        Šī komanda izvadīs, cik rindu ir mūsu failā test.txt. Tas vispirms atkārtojas pa katru rindu, un, kad tas ir sasniedzis END, tas izdrukās NR vērtību, kas šajā gadījumā satur kopējo rindu skaitu.

        12. Iestatiet izvades lauka atdalītāju


        Iepriekš mēs esam parādījuši, kā atlasīt ievades lauku atdalītājus, izmantojot -F vai -lauku atdalītājs iespēja. Komanda awk arī ļauj mums norādīt izvades lauku atdalītāju. Zemāk redzamais piemērs to parāda, izmantojot praktisku piemēru.

        $ date | awk 'OFS='-' {print$2,$3,$6}'

        Šī komanda izdrukā pašreizējo datumu, izmantojot formātu dd-mm-yy. Palaidiet datuma programmu bez awk, lai redzētu, kā izskatās noklusējuma izvade.

        13. If Construct izmantošana


        Tāpat kā citi populāras programmēšanas valodas , awk arī nodrošina lietotājus ar if-else konstrukcijām. Ja paziņojumam awk ir šāda sintakse.

        if (expression) { first_action second_action }

        Atbilstošās darbības tiek veiktas tikai tad, ja nosacījuma izteiksme ir patiesa. Zemāk redzamais piemērs to parāda, izmantojot mūsu atsauces failu test.txt .

        $ awk '{ if ($4>100) print }' test.txt

        Jums nav stingri jāuztur ievilkums.

        14. If-Else Constructs izmantošana


        Izmantojot zemāk esošo sintaksi, varat izveidot noderīgas trepes. Tie ir noderīgi, izstrādājot sarežģītus awk skriptus, kas attiecas uz dinamiskiem datiem.

        if (expression) first_action else second_action
        $ awk '{ if ($4>100) print; else print }' test.txt

        Iepriekš minētā komanda drukās visu atsauces failu, jo ceturtais lauks katrai rindai nav lielāks par 100.

        15. Iestatiet lauka platumu


        Dažreiz ievades dati ir diezgan netīri, un lietotājiem var būt grūti tos vizualizēt savos pārskatos. Par laimi, awk nodrošina jaudīgu iebūvētu mainīgo FIELDWIDTHS, kas ļauj mums definēt ar atstarpēm atdalītu platumu sarakstu.

        $ echo 5675784464657 | awk 'BEGIN {FIELDWIDTHS= '3 4 5'} {print $1, $2, $3}'

        Tas ir ļoti noderīgi, analizējot izkliedētos datus, jo mēs varam kontrolēt izvades lauka platumu tieši tā, kā vēlamies.

        lauka platums awk

        16. Iestatiet ierakstu atdalītāju


        RS vai ierakstu atdalītājs ir vēl viens iebūvēts mainīgais, kas ļauj mums norādīt, kā ieraksti tiek atdalīti. Vispirms izveidosim failu, kas parādīs šī awk mainīgā darbību.

        $ cat new.txt Melinda James 23 New Hampshire (222) 466-1234 Daniel James 99 Phonenix Road (322) 677-3412
        $ awk 'BEGIN{FS='
        '; RS=''} {print $1,$3}' new.txt

        Šī komanda parsēs dokumentu un izslēgs abu personu vārdu un adresi.

        17. Drukas vides mainīgie


        Komanda awk Linux ļauj mums viegli izdrukāt vides mainīgos, izmantojot mainīgo ENVIRON. Zemāk esošā komanda parāda, kā to izmantot, lai izdrukātu mainīgā PATH saturu.

        $ awk 'BEGIN{ print ENVIRON['PATH'] }'

        Varat izdrukāt jebkura vides mainīgā saturu, aizstājot mainīgā ENVIRON argumentu. Zemāk esošā komanda izdrukā vides mainīgā HOME vērtību.

        $ awk 'BEGIN{ print ENVIRON['HOME'] }'

        18. Izlaist dažus laukus no izvades


        Komanda awk ļauj mums izlaist noteiktas rindas no mūsu izvades. Šī komanda to parādīs, izmantojot mūsu atsauces failu test.txt .

        $ awk -F':' '{$2=''; print}' test.txt

        Šī komanda izlaidīs mūsu faila otro kolonnu, kurā ir katras valsts galvaspilsētas nosaukums. Varat arī izlaist vairākus laukus, kā parādīts nākamajā komandā.

        $ awk -F':' '{$2='';$3='';print}' test.txt

        19. Noņemiet tukšās līnijas


        Dažreiz dati var saturēt pārāk daudz tukšu rindu. Jūs varat izmantot komandu awk, lai diezgan viegli noņemtu tukšās rindas. Pārbaudiet nākamo komandu, lai redzētu, kā tas darbojas praksē.

        $ awk '/^[ 	]*$/{next}{print}' new.txt

        Mēs esam noņēmuši visas tukšās rindas no faila new.txt, izmantojot vienkāršu regulāro izteiksmi un iebūvēto awk, ko sauc par nākamo.

        20. Noņemiet beigu atstarpes


        Daudzu Linux komandu izvade satur beigu atstarpes. Mēs varam izmantot komandu awk operētājsistēmā Linux, lai noņemtu tādas atstarpes kā atstarpes un cilnes. Pārbaudiet zemāk esošo komandu, lai uzzinātu, kā risināt šādas problēmas, izmantojot awk.

        $ awk '{sub(/[ 	]*$/, '');print}' new.txt test.txt

        Pievienojiet mūsu atsauces failiem dažas atstarpes un pārbaudiet, vai awk tās ir veiksmīgi noņemtas. Tas manā mašīnā to izdarīja veiksmīgi.

        21. Pārbaudiet lauku skaitu katrā rindā


        Mēs varam viegli pārbaudīt, cik lauku ir rindā, izmantojot vienkāršu awk one-liner. Ir daudz veidu, kā to izdarīt, taču šim uzdevumam mēs izmantosim dažus no awk iebūvētajiem mainīgajiem. Mainīgais NR dod mums rindas numuru, un NF mainīgais nodrošina lauku skaitu.

        $ awk '{print NR,'-->',NF}' test.txt

        Tagad mēs varam apstiprināt, cik daudz lauku ir katrā rindā test.txt dokuments. Tā kā katra šī faila rinda satur 5 laukus, mēs esam pārliecināti, ka komanda darbojas, kā paredzēts.

        22. Pārbaudiet pašreizējo faila nosaukumu


        Awk mainīgais FILENAME tiek izmantots pašreizējā ievades faila nosaukuma pārbaudei. Mēs demonstrējam, kā tas darbojas, izmantojot vienkāršu piemēru. Tomēr tas var būt noderīgi situācijās, kad faila nosaukums nav skaidri zināms vai ja ir vairāk nekā viens ievades fails.

        $ awk '{print FILENAME}' test.txt $ awk '{print FILENAME}' test.txt new.txt

        Iepriekš minētās komandas izdrukā faila nosaukumu awk, ar kuru strādā, katru reizi, kad tiek apstrādāta jauna ievades failu rinda.

        23. Pārbaudiet apstrādāto ierakstu skaitu


        Šis piemērs parādīs, kā mēs varam pārbaudīt ierakstu skaitu, ko apstrādā komanda awk. Tā kā liels skaits Linux sistēmas administratoru pārskatu ģenerēšanai izmanto awk, tas viņiem ir ļoti noderīgi.

        $ awk '{print 'Processing Record - ',NR;} END {print '
        Total Records Processed:', NR;}' test.txt

        Es bieži izmantoju šo awk fragmentu, lai iegūtu skaidru pārskatu par savām darbībām. Jūs varat to viegli pielāgot, lai pielāgotos jaunām idejām vai darbībām.

        apstrādāto rindu skaits awk

        24. Izdrukājiet ierakstu kopējo rakstzīmju skaitu


        Awk valoda nodrošina ērtu funkciju garums (), kas norāda, cik rakstzīmju ir ierakstā. Tas ir ļoti noderīgi vairākos scenārijos. Ātri apskatiet šo piemēru, lai redzētu, kā tas darbojas.

        $ echo 'A random text string...' | awk '{ print length($0); }'
        $ awk '{ print length($0); }' /etc/passwd

        Iepriekš minētā komanda drukās kopējo rakstzīmju skaitu katrā ievades virknes vai faila rindā.

        25. Izdrukājiet visas līnijas ilgāk par noteikto garumu


        Iepriekšminētajai komandai mēs varam pievienot dažus nosacījumus un likt tai drukāt tikai tās rindas, kas ir lielākas par iepriekš noteiktu garumu. Tas ir noderīgi, ja jums jau ir priekšstats par konkrēta ieraksta garumu.

        $ echo 'A random text string...' | awk 'length($0) > 10'
        $ awk '{ length($0) > 5; }' /etc/passwd

        Jūs varat izmantot vairāk iespēju un/vai argumentu, lai pielāgotu komandu, pamatojoties uz jūsu prasībām.

        26. Izdrukājiet rindu, rakstzīmju un vārdu skaitu


        Šī Linux komanda awk izdrukā rindu, rakstzīmju un vārdu skaitu noteiktā ievadē. Šīs darbības veikšanai tiek izmantots mainīgais NR, kā arī dažas pamata aritmētikas.

        $ echo 'This is a input line...' | awk '{ w += NF; c += length + 1 } END { print NR, w, c }'

        Tas parāda, ka ievades virknē ir 1 rinda, 5 vārdi un tieši 24 rakstzīmes.

        27. Aprēķiniet vārdu biežumu


        Mēs varam apvienot asociatīvos masīvus un for ciklu in awk, lai aprēķinātu dokumenta vārdu biežumu. Šī komanda var šķist nedaudz sarežģīta, taču tā ir diezgan vienkārša, kad skaidri saprotat pamatkonstrukcijas.

        $ awk 'BEGIN {FS='[^a-zA-Z]+' } { for (i=1; i<=NF; i++) words[tolower($i)]++ } END { for (i in words) print i, words[i] }' test.txt

        Ja jums ir problēmas ar vienas līnijas fragmentu, nokopējiet šo kodu jaunā failā un palaidiet to, izmantojot avotu.

        $ cat > frequency.awk BEGIN { FS='[^a-zA-Z]+' } { for (i=1; i<=NF; i++) words[tolower($i)]++ } END { for (i in words) print i, words[i] }

        Pēc tam palaidiet to, izmantojot -f iespēja.

        $ awk -f frequency.awk test.txt

        28. Pārdēvēt failus, izmantojot AWK


        Komandu awk var izmantot, lai pārdēvētu visus failus, kas atbilst noteiktiem kritērijiem. Šī komanda parāda, kā izmantot awk, lai pārdēvētu visus direktorijā esošos .MP3 failus uz .mp3 failiem.

        $ touch {a,b,c,d,e}.MP3 $ ls *.MP3 | awk '{ printf('mv '%s' '%s'
        ', $0, tolower($0)) }' $ ls *.MP3 | awk '{ printf('mv '%s' '%s'
        ', $0, tolower($0)) }' | sh

        Pirmkārt, mēs izveidojām dažus demonstrācijas failus ar paplašinājumu .MP3. Otrā komanda parāda lietotājam, kas notiek, ja pārdēvēšana ir veiksmīga. Visbeidzot, pēdējā komanda pārdēvē operāciju, izmantojot Linux komandu mv.

        29. Izdrukājiet skaitļa kvadrātsakni


        AWK piedāvā vairākas iebūvētas funkcijas ciparu manipulēšanai. Viens no tiem ir funkcija sqrt (). Tā ir C līdzīga funkcija, kas atgriež dotā skaitļa kvadrātsakni. Ātri apskatiet nākamo piemēru, lai redzētu, kā tas darbojas kopumā.

        $ awk 'BEGIN{ print sqrt(36); print sqrt(0); print sqrt(-16) }'

        Tā kā jūs nevarat noteikt negatīvā skaitļa kvadrātsakni, izvadē sqrt (-12) vietā tiks parādīts īpašs atslēgvārds ar nosaukumu “nan”.

        sqrt funkcija Linux awk komandā

        30. Izdrukājiet skaitļa logaritmu


        Funkcijas žurnāls awk () nodrošina skaitļa dabisko logaritmu. Tomēr tas darbosies tikai ar pozitīviem skaitļiem, tāpēc ņemiet vērā lietotāju ievades apstiprināšanu. Pretējā gadījumā kāds var pārtraukt jūsu awk programmas un iegūt priviliģētu piekļuvi sistēmas resursiem.

        $ awk 'BEGIN{ print log(36); print log(0); print log(-16) }'

        Jums vajadzētu redzēt logaritmu 36 un pārbaudīt, vai logaritms 0 ir bezgalība, un negatīvās vērtības žurnāls ir “Nav skaitlis” vai nan.

        31. Izdrukājiet skaitļa eksponenciālu


        Eksponenciālais os a skaitlis n nodrošina e^n vērtību. To parasti izmanto awk skriptos, kas nodarbojas ar lieliem cipariem vai sarežģītu aritmētisko loģiku. Mēs varam ģenerēt skaitļa eksponenciālu, izmantojot iebūvēto awk funkciju exp ().

        $ awk 'BEGIN{ print exp(30); print log(0); print exp(-16) }'

        Tomēr awk nevar aprēķināt eksponenciālu lieliem skaitļiem. Jums vajadzētu veikt šādus aprēķinus, izmantojot zema līmeņa programmēšanas valodas, piemēram, C, un norādīt vērtību saviem awk skriptiem.

        32. Izveidojiet nejaušus skaitļus, izmantojot AWK


        Mēs varam izmantot komandu awk Linux, lai ģenerētu nejaušus skaitļus. Šie skaitļi būs diapazonā no 0 līdz 1, bet nekad 0 vai 1. Jūs varat reizināt fiksētu vērtību ar iegūto skaitli, lai iegūtu lielāku izlases vērtību.

        $ awk 'BEGIN{ print rand(); print rand()*99 }'

        Funkcijai rand () nav nepieciešami argumenti. Turklāt šīs funkcijas radītie skaitļi nav precīzi nejauši, bet drīzāk pseidogadījumi. Turklāt ir diezgan viegli paredzēt šos skaitļus no skriešanas uz skrējienu. Tāpēc jums nevajadzētu paļauties uz tiem, veicot sensitīvus aprēķinus.

        33. Krāsu sastādītāja brīdinājumi sarkanā krāsā


        Mūsdienu Linux kompilatori brīdinās, ja jūsu kods nesaglabā valodas standartus vai ja tajā ir kļūdas, kas neaptur programmas izpildi. Šī komanda awk sarkanā krāsā drukās kompilatora ģenerētās brīdinājuma līnijas.

        $ gcc -Wall main.c |& awk '/: warning:/{print 'x1B[01;31m' $0 'x1B[m';next;}{print}'

        Šī komanda ir noderīga, ja vēlaties precīzi noteikt kompilatora brīdinājumus. Šo komandu varat izmantot ar jebkuru kompilatoru, izņemot gcc, vienkārši mainiet modeli /: brīdinājums: /, lai atspoguļotu konkrēto kompilatoru.

        34. Izdrukājiet failu sistēmas UUID informāciju


        UUID vai Universāli unikāls identifikators ir skaitlis, ko var izmantot, lai identificētu tādus resursus kā Linux failu sistēma . Mēs varam vienkārši izdrukāt mūsu failu sistēmas UUID informāciju, izmantojot šādu Linux awk komandu.

        $ awk '/UUID/ {print $0}' /etc/fstab

        Šī komanda meklē tekstu UUID /etc/fstab failu, izmantojot awk modeļus. Tas atgriež komentāru no faila, kas mūs neinteresē. Zemāk esošā komanda nodrošinās, ka mēs saņemam tikai tās rindas, kas sākas ar UUID.

        $ awk '/^UUID/ {print $1}' /etc/fstab

        Tas ierobežo izvadi līdz pirmajam laukam. Tātad mēs iegūstam tikai UUID numurus.

        35. Izdrukājiet Linux kodola attēla versiju


        Tiek izmantoti dažādi Linux kodola attēli dažādi Linux izplatījumi . Mēs varam viegli izdrukāt precīzu kodola attēlu, uz kura balstās mūsu sistēma, izmantojot awk. Pārbaudiet šo komandu, lai redzētu, kā tas darbojas kopumā.

        $ uname -a | awk '{print $3}'

        Mēs vispirms esam izdevuši komandu uname ar -uz opciju un pēc tam pārsūtīja šos datus uz awk. Tad mēs esam ieguvuši kodola attēla versijas informāciju, izmantojot awk.

        36. Pievienojiet rindu numurus pirms rindām


        Lietotāji diezgan bieži var saskarties ar teksta failiem, kas nesatur rindu numurus. Par laimi, jūs varat viegli pievienot rindu numurus failam, izmantojot Linux komandu awk. Rūpīgi apskatiet zemāk redzamo piemēru, lai redzētu, kā tas darbojas reālajā dzīvē.

        $ awk '{ print FNR '. ' $0 ;next}{print}' test.txt

        Iepriekš minētā komanda pievienos rindas numuru pirms katras mūsu test.txt atsauces faila rindas. Lai to novērstu, tas izmanto iebūvēto awk mainīgo FNR.

        pievienojiet rindu numurus, izmantojot komandu awk

        37. Izdrukājiet failu pēc satura kārtošanas


        Mēs varam arī izmantot awk, lai izdrukātu sakārtotu visu rindu sarakstu. Šīs komandas drukā visu mūsu test.txt valstu nosaukumu sakārtotā secībā.

        $ awk -F ':' '{ print $1 }' test.txt | sort

        Nākamā komanda drukās visu lietotāju pieteikšanās vārdu no /etc/passwd failu.

        $ awk -F ':' '{ print $1 }' /etc/passwd | sort

        Jūs varat viegli mainīt kārtošanas kārtību, mainot kārtošanas komandu.

        38. Izdrukājiet rokasgrāmatas lapu


        Rokasgrāmatas lapā ir detalizēta informācija par komandu awk, kā arī visas pieejamās iespējas. Tas ir ārkārtīgi svarīgi cilvēkiem, kuri vēlas rūpīgi apgūt awk komandu.

        $ man awk

        Ja vēlaties apgūt sarežģītas awk funkcijas, tas jums ļoti palīdzēs. Iepazīstieties ar šo dokumentāciju ikreiz, kad esat saskāries ar problēmu.

        39. Izdrukājiet palīdzības lapu


        Palīdzības lapā ir apkopota informācija par visiem iespējamiem komandrindas argumentiem. Varat izsaukt palīdzības ceļvedi, lai iegūtu awk, izmantojot vienu no šīm komandām.

        $ awk -h $ awk --help

        Skatiet šo lapu, ja vēlaties ātri apskatīt visas pieejamās awk iespējas.

        40. Informācija par drukas versiju


        Versijas informācija sniedz mums informāciju par programmu veidošanu. Awk versijas lapā ir tāda informācija kā autortiesības, apkopošanas rīki utt. Šo informāciju varat skatīt, izmantojot vienu no šīm awk komandām.

        $ awk -V $ awk --version

        Beigu domas


        Komanda awk operētājsistēmā Linux ļauj mums veikt visu veidu lietas, tostarp failu apstrādi un sistēmas uzturēšanu. Tas nodrošina daudzveidīgu darbību klāstu, lai diezgan viegli tiktu galā ar ikdienas skaitļošanas uzdevumiem. Mūsu redaktori ir apkopojuši šo rokasgrāmatu ar 40 noderīgām awk komandām, kuras var izmantot teksta manipulācijām vai administrēšanai. Tā kā AWK pati par sevi ir pilnvērtīga programmēšanas valoda, ir vairāki veidi, kā veikt vienu un to pašu darbu. Tāpēc nebrīnieties, kāpēc mēs dažas lietas darām citādi. Jūs vienmēr varat apkopot savas receptes, pamatojoties uz savu prasmju kopumu un pieredzi. Ja jums ir kādi jautājumi, atstājiet mums savas domas.

        • Tagi
        • Programmēšanas rīki
        • Sistēmas utilītas rīki
        Kopīgot Facebook Twitter Pinterest WhatsApp ReddIt Telegramma Viber

          7 KOMENTĀRI

          1. Ramesh 2020. gada 24. aprīlis plkst. 07:48

            Kas ir labākais sed vai awk?

            Atbildēt
            • lauhub 2021. gada 6. janvāris 04:41

              Abi ir labākie:

              - sed ir noderīgs vienkāršiem nomaiņas/izdevuma uzdevumiem, un tam ir daži ierobežojumi sarežģītu uzdevumu programmēšanai (lai gan pieredzējuši lietotāji var darīt daudzas lietas)

              - awk ir jābūt daudzpusīgākam, lai veiktu vienkāršus uzdevumus, bet ļauj sarežģītākām programmām izmantot sarežģītākas datu struktūras.

              Jebkurā gadījumā viss ir atkarīgs no jūsu vajadzībām un zināšanām par šiem rīkiem

              Atbildēt
            • DC 2021. gada 16. jūlijs plkst. 09:17

              Abi ir funkcionāli atšķirīgi. sed ir ierobežota funkcionalitāte. Parasti izmanto, lai atrastu un aizstātu virkņu redaktoru.
              awk tiek izmantots datu manipulācijām un nodrošina vairāk programmēšanas funkcionalitātes

              Atbildēt
          2. Ahmeds 2020. gada 16. aprīlis plkst. 13:24

            Sveiki,
            Piemēri ir lieliski, taču būtu bijis labāk, ja jūs būtu ievietojis izlaidi arī pēc piemēra.

            Atbildēt
            • Rubaiat Hossain 2020. gada 18. aprīlis plkst. 01:28

              Paldies, Ahmed, ka tu paliec pie mums. Tomēr mēs baidāmies, ka katrai komandai pievienojot atsevišķus attēlus, ceļvedis būs ārkārtīgi garš, un tāpēc lietotāji, kas to lasa no maza ekrāna ierīcēm, piemēram, tālruņiem/planšetdatoriem, var saskarties ar nevēlamu ritināšanas pieredzi.

              Turklāt mēs mudinām mūsu lasītājus uzlabot šīs awk komandas Linux, atrodoties ceļā, un izmēģināt tās no pirmavotiem. Tādā veidā jūs tos apgūsit ātrāk.

              Atbildēt
          3. Stefans 2020. gada 6. aprīlī plkst. 10:54

            Lieliski piemēri. Paldies par šo

            Atbildēt
          4. Kārans Grovers 2020. gada 2. aprīlī plkst. 17:29

            jauki awk piemēri

            Atbildēt

          ATSTĀJ ATBILDI Atcelt atbildi

          Komentārs: Lūdzu, ievadiet savu komentāru! Vārds:* Lūdzu, ievadiet savu vārdu šeit E -pasts:* Jūs esat ievadījis nepareizu e -pasta adresi! Lūdzu, šeit ievadiet savu e -pasta adresi Vietne:

          Saglabājiet manu vārdu, e -pastu un vietni šajā pārlūkprogrammā, lai nākamreiz komentētu.

          spot_img

          Jaunākā ziņa

          Android

          10 labākās sejas maiņas lietotnes Android un iOS ierīcēm

          Windows OS

          Kā ieplānot Windows 10, lai automātiski iztukšotu atkritni

          Android

          10 labākās rēķinu izrakstīšanas lietotnes Android ierīcei, lai ātri samaksātu

          Windows OS

          10 labākās GPU etalona programmatūras jūsu datoram

          Vajag izlasīt

          Linux

          Kā instalēt un konfigurēt XAMPP operētājsistēmā Ubuntu Linux

          Linux

          Ubuntu Communitheme - Jauna Ubuntu kopienas tēma

          Linux

          Kā instalēt programmatūru no avota koda savā Linux sistēmā

          Linux

          RedNotebook - mūsdienīga un bezmaksas dienasgrāmatu un žurnālu programmatūra Linux

          Saistītā ziņa

          Kā instalēt un iestatīt kabīnes tīmekļa konsoli Linux sistēmā

          Kā instalēt un iestatīt Yii PHP Framework Ubuntu Linux

          Kā labot W: dažiem indeksa failiem neizdevās lejupielādēt kļūdu Ubuntu Linux

          Kā instalēt un iestatīt 1Password Linux darbvirsmā

          Kā instalēt jaunāko GNU Nano teksta redaktoru Linux darbvirsmā

          Kā instalēt jaunu relikvijas infrastruktūras aģentu Linux sistēmā

          ) > 5; }' /etc/passwd

          Jūs varat izmantot vairāk iespēju un/vai argumentu, lai pielāgotu komandu, pamatojoties uz jūsu prasībām.

          26. Izdrukājiet rindu, rakstzīmju un vārdu skaitu


          Šī Linux komanda awk izdrukā rindu, rakstzīmju un vārdu skaitu noteiktā ievadē. Šīs darbības veikšanai tiek izmantots mainīgais NR, kā arī dažas pamata aritmētikas.

          $ echo 'This is a input line...' | awk '{ w += NF; c += length + 1 } END { print NR, w, c }'

          Tas parāda, ka ievades virknē ir 1 rinda, 5 vārdi un tieši 24 rakstzīmes.

          27. Aprēķiniet vārdu biežumu


          Mēs varam apvienot asociatīvos masīvus un for ciklu in awk, lai aprēķinātu dokumenta vārdu biežumu. Šī komanda var šķist nedaudz sarežģīta, taču tā ir diezgan vienkārša, kad skaidri saprotat pamatkonstrukcijas.

          $ awk 'BEGIN {FS='[^a-zA-Z]+' } { for (i=1; i<=NF; i++) words[tolower($i)]++ } END { for (i in words) print i, words[i] }' test.txt

          Ja jums ir problēmas ar vienas līnijas fragmentu, nokopējiet šo kodu jaunā failā un palaidiet to, izmantojot avotu.

          $ cat > frequency.awk BEGIN { FS='[^a-zA-Z]+' } { for (i=1; i<=NF; i++) words[tolower($i)]++ } END { for (i in words) print i, words[i] }

          Pēc tam palaidiet to, izmantojot -f iespēja.

          $ awk -f frequency.awk test.txt

          28. Pārdēvēt failus, izmantojot AWK


          Komandu awk var izmantot, lai pārdēvētu visus failus, kas atbilst noteiktiem kritērijiem. Šī komanda parāda, kā izmantot awk, lai pārdēvētu visus direktorijā esošos .MP3 failus uz .mp3 failiem.

          $ touch {a,b,c,d,e}.MP3 $ ls *.MP3 | awk '{ printf('mv '%s' '%s'
          ', 
          Mājas A-Z komandas 40 Praktiska un noderīga awk komanda Linux un BSD AutorsMehedi Hasan InA-Z komandasPiedāvātie 1271 7

          SATURS

          1. Izpratne par AWK programmām
          2. Praktiski awk komandu piemēri Linux
            1. 1. Izdrukājiet specifiskus laukus no teksta izvades
            2. 2. Drukājiet vairākus laukus no teksta izvades
            3. 3. Izmantojiet BEGIN paziņojumus
            4. 4. Izmantojiet END paziņojumus
            5. 5. Meklēšana, izmantojot modeļus
            6. 6. Izņemiet informāciju no failiem
            7. 7. Izlasiet AWK skriptu no avota faila
            8. 8. Iestatiet ievades lauka atdalītāju
            9. 9. Drukāt informāciju, pamatojoties uz stāvokli
            10. 10. Drukājiet informāciju, salīdzinot regulārās izteiksmes
            11. 11. Saskaitiet kopējo ievadīto rindu skaitu
            12. 12. Iestatiet izvades lauka atdalītāju
            13. 13. If Construct izmantošana
            14. 14. If-Else Constructs izmantošana
            15. 15. Iestatiet lauka platumu
            16. 16. Iestatiet ierakstu atdalītāju
            17. 17. Drukas vides mainīgie
            18. 18. Izlaist dažus laukus no izvades
            19. 19. Noņemiet tukšās līnijas
            20. 20. Noņemiet beigu atstarpes
            21. 21. Pārbaudiet lauku skaitu katrā rindā
            22. 22. Pārbaudiet pašreizējo faila nosaukumu
            23. 23. Pārbaudiet apstrādāto ierakstu skaitu
            24. 24. Izdrukājiet ierakstu kopējo rakstzīmju skaitu
            25. 25. Izdrukājiet visas līnijas ilgāk par noteikto garumu
            26. 26. Izdrukājiet rindu, rakstzīmju un vārdu skaitu
            27. 27. Aprēķiniet vārdu biežumu
            28. 28. Pārdēvēt failus, izmantojot AWK
            29. 29. Izdrukājiet skaitļa kvadrātsakni
            30. 30. Izdrukājiet skaitļa logaritmu
            31. 31. Izdrukājiet skaitļa eksponenciālu
            32. 32. Izveidojiet nejaušus skaitļus, izmantojot AWK
            33. 33. Krāsu sastādītāja brīdinājumi sarkanā krāsā
            34. 34. Izdrukājiet failu sistēmas UUID informāciju
            35. 35. Izdrukājiet Linux kodola attēla versiju
            36. 36. Pievienojiet rindu numurus pirms rindām
            37. 37. Izdrukājiet failu pēc satura kārtošanas
            38. 38. Izdrukājiet rokasgrāmatas lapu
            39. 39. Izdrukājiet palīdzības lapu
            40. 40. Informācija par drukas versiju
          3. Beigu domas

          AWK ir spēcīga> pilnvērtīga programmēšanas valoda . AWK savu nosaukumu ieguvis no tā autoru iniciāļiem - Aho, Veinbergera un Kernighana. Komanda awk Linux un citās Unix sistēmās izsauc tulku, kas palaiž AWK skriptus. Nesenās sistēmās pastāv vairākas awk ieviešanas, piemēram, gawk (GNU awk), mawk (Minimal awk) un nawk (New awk). Apskatiet tālāk sniegtos piemērus, ja vēlaties apgūt awk.

          Izpratne par AWK programmām


          Programmas, kas rakstītas awk, sastāv no noteikumiem, kas ir vienkārši modeļu un darbību pāris. Modeļi ir sagrupēti iekavās {}, un darbības daļa tiek aktivizēta ikreiz, kad awk atrod tekstam atbilstošus tekstus. Lai gan awk tika izstrādāts vienas līnijas rakstīšanai, pieredzējuši lietotāji ar to var viegli rakstīt sarežģītus skriptus.

          awk komanda Linux

          AWK programmas ir ļoti noderīgas liela mēroga failu apstrādei. Tas identificē teksta laukus, izmantojot speciālās rakstzīmes un atdalītājus. Tā piedāvā arī augsta līmeņa programmēšanas konstrukcijas, piemēram, masīvus un cilpas. Tāpēc ir ļoti iespējams rakstīt stabilas programmas, izmantojot vienkāršu awk.

          Praktiski awk komandu piemēri Linux


          Administratori parasti izmanto awk datu iegūšanai un ziņošanai kopā ar cita veida failu manipulācijām. Zemāk mēs detalizētāk apspriedām awk. Rūpīgi izpildiet komandas un izmēģiniet tās savā terminālī, lai iegūtu pilnīgu izpratni.

          1. Izdrukājiet specifiskus laukus no teksta izvades


          Visvairāk plaši izmantotas Linux komandas parādīt savus rezultātus, izmantojot dažādus laukus. Parasti mēs izmantojam Linux izgriešanas komandu, lai no šādiem datiem iegūtu noteiktu lauku. Tomēr zemāk esošā komanda parāda, kā to izdarīt, izmantojot komandu awk.

          $ who | awk '{print $1}'

          Šī komanda parādīs tikai pirmo lauku no komandas who izvades. Tātad jūs vienkārši iegūsit visu pašlaik reģistrēto lietotāju lietotājvārdus. Šeit, $ 1 apzīmē pirmo lauku. Jums ir jāizmanto $ N ja vēlaties iegūt N-to lauku.

          2. Drukājiet vairākus laukus no teksta izvades


          Awk tulks ļauj mums izdrukāt vēlamo lauku skaitu. Tālāk sniegtajos piemēros ir parādīts, kā iegūt pirmos divus laukus no komandas who izvades.

          $ who | awk '{print $1, $2}'

          Varat arī kontrolēt izvades lauku secību. Šajā piemērā vispirms tiek parādīta otrā sleja, ko izveidojusi komanda who, un pēc tam pirmā kolonna otrajā laukā.

          $ who | awk '{print $2, $1}'

          Vienkārši atstājiet laukā parametrus ( $ N ), lai parādītu visus datus.

          3. Izmantojiet BEGIN paziņojumus


          BEGIN paziņojums ļauj lietotājiem izvadē izdrukāt zināmu informāciju. To parasti izmanto awk ģenerēto izejas datu formatēšanai. Šī paziņojuma sintakse ir parādīta zemāk.

          BEGIN { Actions} {ACTION}

          Darbības, kas veido sadaļu SĀKT, vienmēr tiek aktivizētas. Tad awk izlasa atlikušās rindas pa vienai un redz, vai kaut kas ir jādara.

          $ who | awk 'BEGIN {print 'User	From'} {print $1, $2}'

          Iepriekš minētā komanda iezīmēs divus izvades laukus, kas iegūti no komandas izvades.

          4. Izmantojiet END paziņojumus


          Varat arī izmantot paziņojumu END, lai pārliecinātos, ka noteiktas darbības vienmēr tiek veiktas jūsu darbības beigās. Vienkārši ievietojiet sadaļu END pēc galvenā darbību kopuma.

          $ who | awk 'BEGIN {print 'User	From'} {print $1, $2} END {print '--COMPLETED--'}'

          Iepriekš minētā komanda pievienos norādīto virkni izvades beigās.

          5. Meklēšana, izmantojot modeļus


          Liela daļa awk darbu ir saistīta ar modeļu saskaņošanu un regulāro izteiksmi. Kā mēs jau esam apsprieduši, awk meklē modeļus katrā ievades rindā un veic darbību tikai tad, kad tiek aktivizēta atbilstība. Mūsu iepriekšējie noteikumi sastāvēja tikai no darbībām. Zemāk mēs esam ilustrējuši modeļu atbilstības pamatus, izmantojot Linux komandu awk.

          $ who | awk '/mary/ {print}'

          Šī komanda redzēs, vai lietotājs Marija pašlaik ir pieteicies vai nē. Ja tiks atrasta atbilstība, tā izvadīs visu rindu.

          6. Izņemiet informāciju no failiem


          Komanda awk ļoti labi darbojas ar failiem, un to var izmantot sarežģītiem failu apstrādes uzdevumiem. Šī komanda parāda, kā awk apstrādā failus.

          $ awk '/hello/ {print}' /usr/share/dict/american-english

          Šī komanda meklē modeli “sveiki” amerikāņu-angļu vārdnīcas failā. Tas ir pieejams lielākajā daļā Linux balstītas izplatīšanas . Tādējādi šajā failā varat viegli izmēģināt awk programmas.

          awk modeļa meklēšana

          7. Izlasiet AWK skriptu no avota faila


          Lai gan viena līnija programmu rakstīšana ir noderīga, jūs varat arī rakstīt lielas programmas, pilnībā izmantojot awk. Jūs vēlaties tos saglabāt un palaist programmu, izmantojot avota failu.

          $ awk -f script-file $ awk --file script-file

          The -f vai - fails opcija ļauj mums norādīt programmas failu. Tomēr jums nav jāizmanto pēdiņas (‘’) skripta faila iekšienē, jo Linux apvalks šādā veidā neskaidros programmas kodu.

          8. Iestatiet ievades lauka atdalītāju


          Lauku atdalītājs ir norobežotājs, kas sadala ievades ierakstu. Mēs varam viegli norādīt lauku atdalītājus awk, izmantojot -F vai -lauku atdalītājs iespēja. Pārbaudiet zemāk esošās komandas, lai redzētu, kā tas darbojas.

          $ echo 'This-is-a-simple-example' | awk -F - ' {print $1} ' $ echo 'This-is-a-simple-example' | awk --field-separator - ' {print $1} '

          Tas darbojas vienādi, ja Linux izmanto skripta failus, nevis vienu līniju awk komandu.

          9. Drukāt informāciju, pamatojoties uz stāvokli


          Esam apsprieduši Linux izgriešanas komanda iepriekšējā ceļvedī. Tagad mēs parādīsim, kā iegūt informāciju, izmantojot awk, tikai tad, ja ir noteikti kritēriji. Mēs izmantosim to pašu testa failu, ko izmantojām šajā rokasgrāmatā. Tāpēc dodieties tur un izveidojiet kopiju test.txt failu.

          $ awk '$4 > 50' test.txt

          Šī komanda izdrukās visas valstis no faila test.txt, kurā ir vairāk nekā 50 miljoni iedzīvotāju.

          10. Drukājiet informāciju, salīdzinot regulārās izteiksmes


          Šī awk komanda pārbauda, ​​vai jebkuras rindas trešais lauks satur rakstu “Lira”, un, ja tiek atrasta atbilstība, izdrukā visu rindu. Mēs atkal izmantojam failu test.txt, ko izmanto, lai ilustrētu Linux izgriešanas komanda . Tāpēc pirms turpināt, pārliecinieties, vai esat ieguvis šo failu.

          $ awk '$3 ~ /Lira/' test.txt

          Ja vēlaties, varat drukāt tikai noteiktu daļu no jebkuras spēles.

          11. Saskaitiet kopējo ievadīto rindu skaitu


          Komandai awk ir daudz speciālu mainīgo, kas ļauj mums viegli veikt daudzas uzlabotas lietas. Viens no šādiem mainīgajiem ir NR, kas satur pašreizējo rindas numuru.

          $ awk 'END {print NR} ' test.txt

          Šī komanda izvadīs, cik rindu ir mūsu failā test.txt. Tas vispirms atkārtojas pa katru rindu, un, kad tas ir sasniedzis END, tas izdrukās NR vērtību, kas šajā gadījumā satur kopējo rindu skaitu.

          12. Iestatiet izvades lauka atdalītāju


          Iepriekš mēs esam parādījuši, kā atlasīt ievades lauku atdalītājus, izmantojot -F vai -lauku atdalītājs iespēja. Komanda awk arī ļauj mums norādīt izvades lauku atdalītāju. Zemāk redzamais piemērs to parāda, izmantojot praktisku piemēru.

          $ date | awk 'OFS='-' {print$2,$3,$6}'

          Šī komanda izdrukā pašreizējo datumu, izmantojot formātu dd-mm-yy. Palaidiet datuma programmu bez awk, lai redzētu, kā izskatās noklusējuma izvade.

          13. If Construct izmantošana


          Tāpat kā citi populāras programmēšanas valodas , awk arī nodrošina lietotājus ar if-else konstrukcijām. Ja paziņojumam awk ir šāda sintakse.

          if (expression) { first_action second_action }

          Atbilstošās darbības tiek veiktas tikai tad, ja nosacījuma izteiksme ir patiesa. Zemāk redzamais piemērs to parāda, izmantojot mūsu atsauces failu test.txt .

          $ awk '{ if ($4>100) print }' test.txt

          Jums nav stingri jāuztur ievilkums.

          14. If-Else Constructs izmantošana


          Izmantojot zemāk esošo sintaksi, varat izveidot noderīgas trepes. Tie ir noderīgi, izstrādājot sarežģītus awk skriptus, kas attiecas uz dinamiskiem datiem.

          if (expression) first_action else second_action
          $ awk '{ if ($4>100) print; else print }' test.txt

          Iepriekš minētā komanda drukās visu atsauces failu, jo ceturtais lauks katrai rindai nav lielāks par 100.

          15. Iestatiet lauka platumu


          Dažreiz ievades dati ir diezgan netīri, un lietotājiem var būt grūti tos vizualizēt savos pārskatos. Par laimi, awk nodrošina jaudīgu iebūvētu mainīgo FIELDWIDTHS, kas ļauj mums definēt ar atstarpēm atdalītu platumu sarakstu.

          $ echo 5675784464657 | awk 'BEGIN {FIELDWIDTHS= '3 4 5'} {print $1, $2, $3}'

          Tas ir ļoti noderīgi, analizējot izkliedētos datus, jo mēs varam kontrolēt izvades lauka platumu tieši tā, kā vēlamies.

          lauka platums awk

          16. Iestatiet ierakstu atdalītāju


          RS vai ierakstu atdalītājs ir vēl viens iebūvēts mainīgais, kas ļauj mums norādīt, kā ieraksti tiek atdalīti. Vispirms izveidosim failu, kas parādīs šī awk mainīgā darbību.

          $ cat new.txt Melinda James 23 New Hampshire (222) 466-1234 Daniel James 99 Phonenix Road (322) 677-3412
          $ awk 'BEGIN{FS='
          '; RS=''} {print $1,$3}' new.txt

          Šī komanda parsēs dokumentu un izslēgs abu personu vārdu un adresi.

          17. Drukas vides mainīgie


          Komanda awk Linux ļauj mums viegli izdrukāt vides mainīgos, izmantojot mainīgo ENVIRON. Zemāk esošā komanda parāda, kā to izmantot, lai izdrukātu mainīgā PATH saturu.

          $ awk 'BEGIN{ print ENVIRON['PATH'] }'

          Varat izdrukāt jebkura vides mainīgā saturu, aizstājot mainīgā ENVIRON argumentu. Zemāk esošā komanda izdrukā vides mainīgā HOME vērtību.

          $ awk 'BEGIN{ print ENVIRON['HOME'] }'

          18. Izlaist dažus laukus no izvades


          Komanda awk ļauj mums izlaist noteiktas rindas no mūsu izvades. Šī komanda to parādīs, izmantojot mūsu atsauces failu test.txt .

          $ awk -F':' '{$2=''; print}' test.txt

          Šī komanda izlaidīs mūsu faila otro kolonnu, kurā ir katras valsts galvaspilsētas nosaukums. Varat arī izlaist vairākus laukus, kā parādīts nākamajā komandā.

          $ awk -F':' '{$2='';$3='';print}' test.txt

          19. Noņemiet tukšās līnijas


          Dažreiz dati var saturēt pārāk daudz tukšu rindu. Jūs varat izmantot komandu awk, lai diezgan viegli noņemtu tukšās rindas. Pārbaudiet nākamo komandu, lai redzētu, kā tas darbojas praksē.

          $ awk '/^[ 	]*$/{next}{print}' new.txt

          Mēs esam noņēmuši visas tukšās rindas no faila new.txt, izmantojot vienkāršu regulāro izteiksmi un iebūvēto awk, ko sauc par nākamo.

          20. Noņemiet beigu atstarpes


          Daudzu Linux komandu izvade satur beigu atstarpes. Mēs varam izmantot komandu awk operētājsistēmā Linux, lai noņemtu tādas atstarpes kā atstarpes un cilnes. Pārbaudiet zemāk esošo komandu, lai uzzinātu, kā risināt šādas problēmas, izmantojot awk.

          $ awk '{sub(/[ 	]*$/, '');print}' new.txt test.txt

          Pievienojiet mūsu atsauces failiem dažas atstarpes un pārbaudiet, vai awk tās ir veiksmīgi noņemtas. Tas manā mašīnā to izdarīja veiksmīgi.

          21. Pārbaudiet lauku skaitu katrā rindā


          Mēs varam viegli pārbaudīt, cik lauku ir rindā, izmantojot vienkāršu awk one-liner. Ir daudz veidu, kā to izdarīt, taču šim uzdevumam mēs izmantosim dažus no awk iebūvētajiem mainīgajiem. Mainīgais NR dod mums rindas numuru, un NF mainīgais nodrošina lauku skaitu.

          $ awk '{print NR,'-->',NF}' test.txt

          Tagad mēs varam apstiprināt, cik daudz lauku ir katrā rindā test.txt dokuments. Tā kā katra šī faila rinda satur 5 laukus, mēs esam pārliecināti, ka komanda darbojas, kā paredzēts.

          22. Pārbaudiet pašreizējo faila nosaukumu


          Awk mainīgais FILENAME tiek izmantots pašreizējā ievades faila nosaukuma pārbaudei. Mēs demonstrējam, kā tas darbojas, izmantojot vienkāršu piemēru. Tomēr tas var būt noderīgi situācijās, kad faila nosaukums nav skaidri zināms vai ja ir vairāk nekā viens ievades fails.

          $ awk '{print FILENAME}' test.txt $ awk '{print FILENAME}' test.txt new.txt

          Iepriekš minētās komandas izdrukā faila nosaukumu awk, ar kuru strādā, katru reizi, kad tiek apstrādāta jauna ievades failu rinda.

          23. Pārbaudiet apstrādāto ierakstu skaitu


          Šis piemērs parādīs, kā mēs varam pārbaudīt ierakstu skaitu, ko apstrādā komanda awk. Tā kā liels skaits Linux sistēmas administratoru pārskatu ģenerēšanai izmanto awk, tas viņiem ir ļoti noderīgi.

          $ awk '{print 'Processing Record - ',NR;} END {print '
          Total Records Processed:', NR;}' test.txt

          Es bieži izmantoju šo awk fragmentu, lai iegūtu skaidru pārskatu par savām darbībām. Jūs varat to viegli pielāgot, lai pielāgotos jaunām idejām vai darbībām.

          apstrādāto rindu skaits awk

          24. Izdrukājiet ierakstu kopējo rakstzīmju skaitu


          Awk valoda nodrošina ērtu funkciju garums (), kas norāda, cik rakstzīmju ir ierakstā. Tas ir ļoti noderīgi vairākos scenārijos. Ātri apskatiet šo piemēru, lai redzētu, kā tas darbojas.

          $ echo 'A random text string...' | awk '{ print length($0); }'
          $ awk '{ print length($0); }' /etc/passwd

          Iepriekš minētā komanda drukās kopējo rakstzīmju skaitu katrā ievades virknes vai faila rindā.

          25. Izdrukājiet visas līnijas ilgāk par noteikto garumu


          Iepriekšminētajai komandai mēs varam pievienot dažus nosacījumus un likt tai drukāt tikai tās rindas, kas ir lielākas par iepriekš noteiktu garumu. Tas ir noderīgi, ja jums jau ir priekšstats par konkrēta ieraksta garumu.

          $ echo 'A random text string...' | awk 'length($0) > 10'
          $ awk '{ length($0) > 5; }' /etc/passwd

          Jūs varat izmantot vairāk iespēju un/vai argumentu, lai pielāgotu komandu, pamatojoties uz jūsu prasībām.

          26. Izdrukājiet rindu, rakstzīmju un vārdu skaitu


          Šī Linux komanda awk izdrukā rindu, rakstzīmju un vārdu skaitu noteiktā ievadē. Šīs darbības veikšanai tiek izmantots mainīgais NR, kā arī dažas pamata aritmētikas.

          $ echo 'This is a input line...' | awk '{ w += NF; c += length + 1 } END { print NR, w, c }'

          Tas parāda, ka ievades virknē ir 1 rinda, 5 vārdi un tieši 24 rakstzīmes.

          27. Aprēķiniet vārdu biežumu


          Mēs varam apvienot asociatīvos masīvus un for ciklu in awk, lai aprēķinātu dokumenta vārdu biežumu. Šī komanda var šķist nedaudz sarežģīta, taču tā ir diezgan vienkārša, kad skaidri saprotat pamatkonstrukcijas.

          $ awk 'BEGIN {FS='[^a-zA-Z]+' } { for (i=1; i<=NF; i++) words[tolower($i)]++ } END { for (i in words) print i, words[i] }' test.txt

          Ja jums ir problēmas ar vienas līnijas fragmentu, nokopējiet šo kodu jaunā failā un palaidiet to, izmantojot avotu.

          $ cat > frequency.awk BEGIN { FS='[^a-zA-Z]+' } { for (i=1; i<=NF; i++) words[tolower($i)]++ } END { for (i in words) print i, words[i] }

          Pēc tam palaidiet to, izmantojot -f iespēja.

          $ awk -f frequency.awk test.txt

          28. Pārdēvēt failus, izmantojot AWK


          Komandu awk var izmantot, lai pārdēvētu visus failus, kas atbilst noteiktiem kritērijiem. Šī komanda parāda, kā izmantot awk, lai pārdēvētu visus direktorijā esošos .MP3 failus uz .mp3 failiem.

          $ touch {a,b,c,d,e}.MP3 $ ls *.MP3 | awk '{ printf('mv '%s' '%s'
          ', $0, tolower($0)) }' $ ls *.MP3 | awk '{ printf('mv '%s' '%s'
          ', $0, tolower($0)) }' | sh

          Pirmkārt, mēs izveidojām dažus demonstrācijas failus ar paplašinājumu .MP3. Otrā komanda parāda lietotājam, kas notiek, ja pārdēvēšana ir veiksmīga. Visbeidzot, pēdējā komanda pārdēvē operāciju, izmantojot Linux komandu mv.

          29. Izdrukājiet skaitļa kvadrātsakni


          AWK piedāvā vairākas iebūvētas funkcijas ciparu manipulēšanai. Viens no tiem ir funkcija sqrt (). Tā ir C līdzīga funkcija, kas atgriež dotā skaitļa kvadrātsakni. Ātri apskatiet nākamo piemēru, lai redzētu, kā tas darbojas kopumā.

          $ awk 'BEGIN{ print sqrt(36); print sqrt(0); print sqrt(-16) }'

          Tā kā jūs nevarat noteikt negatīvā skaitļa kvadrātsakni, izvadē sqrt (-12) vietā tiks parādīts īpašs atslēgvārds ar nosaukumu “nan”.

          sqrt funkcija Linux awk komandā

          30. Izdrukājiet skaitļa logaritmu


          Funkcijas žurnāls awk () nodrošina skaitļa dabisko logaritmu. Tomēr tas darbosies tikai ar pozitīviem skaitļiem, tāpēc ņemiet vērā lietotāju ievades apstiprināšanu. Pretējā gadījumā kāds var pārtraukt jūsu awk programmas un iegūt priviliģētu piekļuvi sistēmas resursiem.

          $ awk 'BEGIN{ print log(36); print log(0); print log(-16) }'

          Jums vajadzētu redzēt logaritmu 36 un pārbaudīt, vai logaritms 0 ir bezgalība, un negatīvās vērtības žurnāls ir “Nav skaitlis” vai nan.

          31. Izdrukājiet skaitļa eksponenciālu


          Eksponenciālais os a skaitlis n nodrošina e^n vērtību. To parasti izmanto awk skriptos, kas nodarbojas ar lieliem cipariem vai sarežģītu aritmētisko loģiku. Mēs varam ģenerēt skaitļa eksponenciālu, izmantojot iebūvēto awk funkciju exp ().

          $ awk 'BEGIN{ print exp(30); print log(0); print exp(-16) }'

          Tomēr awk nevar aprēķināt eksponenciālu lieliem skaitļiem. Jums vajadzētu veikt šādus aprēķinus, izmantojot zema līmeņa programmēšanas valodas, piemēram, C, un norādīt vērtību saviem awk skriptiem.

          32. Izveidojiet nejaušus skaitļus, izmantojot AWK


          Mēs varam izmantot komandu awk Linux, lai ģenerētu nejaušus skaitļus. Šie skaitļi būs diapazonā no 0 līdz 1, bet nekad 0 vai 1. Jūs varat reizināt fiksētu vērtību ar iegūto skaitli, lai iegūtu lielāku izlases vērtību.

          $ awk 'BEGIN{ print rand(); print rand()*99 }'

          Funkcijai rand () nav nepieciešami argumenti. Turklāt šīs funkcijas radītie skaitļi nav precīzi nejauši, bet drīzāk pseidogadījumi. Turklāt ir diezgan viegli paredzēt šos skaitļus no skriešanas uz skrējienu. Tāpēc jums nevajadzētu paļauties uz tiem, veicot sensitīvus aprēķinus.

          33. Krāsu sastādītāja brīdinājumi sarkanā krāsā


          Mūsdienu Linux kompilatori brīdinās, ja jūsu kods nesaglabā valodas standartus vai ja tajā ir kļūdas, kas neaptur programmas izpildi. Šī komanda awk sarkanā krāsā drukās kompilatora ģenerētās brīdinājuma līnijas.

          $ gcc -Wall main.c |& awk '/: warning:/{print 'x1B[01;31m' $0 'x1B[m';next;}{print}'

          Šī komanda ir noderīga, ja vēlaties precīzi noteikt kompilatora brīdinājumus. Šo komandu varat izmantot ar jebkuru kompilatoru, izņemot gcc, vienkārši mainiet modeli /: brīdinājums: /, lai atspoguļotu konkrēto kompilatoru.

          34. Izdrukājiet failu sistēmas UUID informāciju


          UUID vai Universāli unikāls identifikators ir skaitlis, ko var izmantot, lai identificētu tādus resursus kā Linux failu sistēma . Mēs varam vienkārši izdrukāt mūsu failu sistēmas UUID informāciju, izmantojot šādu Linux awk komandu.

          $ awk '/UUID/ {print $0}' /etc/fstab

          Šī komanda meklē tekstu UUID /etc/fstab failu, izmantojot awk modeļus. Tas atgriež komentāru no faila, kas mūs neinteresē. Zemāk esošā komanda nodrošinās, ka mēs saņemam tikai tās rindas, kas sākas ar UUID.

          $ awk '/^UUID/ {print $1}' /etc/fstab

          Tas ierobežo izvadi līdz pirmajam laukam. Tātad mēs iegūstam tikai UUID numurus.

          35. Izdrukājiet Linux kodola attēla versiju


          Tiek izmantoti dažādi Linux kodola attēli dažādi Linux izplatījumi . Mēs varam viegli izdrukāt precīzu kodola attēlu, uz kura balstās mūsu sistēma, izmantojot awk. Pārbaudiet šo komandu, lai redzētu, kā tas darbojas kopumā.

          $ uname -a | awk '{print $3}'

          Mēs vispirms esam izdevuši komandu uname ar -uz opciju un pēc tam pārsūtīja šos datus uz awk. Tad mēs esam ieguvuši kodola attēla versijas informāciju, izmantojot awk.

          36. Pievienojiet rindu numurus pirms rindām


          Lietotāji diezgan bieži var saskarties ar teksta failiem, kas nesatur rindu numurus. Par laimi, jūs varat viegli pievienot rindu numurus failam, izmantojot Linux komandu awk. Rūpīgi apskatiet zemāk redzamo piemēru, lai redzētu, kā tas darbojas reālajā dzīvē.

          $ awk '{ print FNR '. ' $0 ;next}{print}' test.txt

          Iepriekš minētā komanda pievienos rindas numuru pirms katras mūsu test.txt atsauces faila rindas. Lai to novērstu, tas izmanto iebūvēto awk mainīgo FNR.

          pievienojiet rindu numurus, izmantojot komandu awk

          37. Izdrukājiet failu pēc satura kārtošanas


          Mēs varam arī izmantot awk, lai izdrukātu sakārtotu visu rindu sarakstu. Šīs komandas drukā visu mūsu test.txt valstu nosaukumu sakārtotā secībā.

          $ awk -F ':' '{ print $1 }' test.txt | sort

          Nākamā komanda drukās visu lietotāju pieteikšanās vārdu no /etc/passwd failu.

          $ awk -F ':' '{ print $1 }' /etc/passwd | sort

          Jūs varat viegli mainīt kārtošanas kārtību, mainot kārtošanas komandu.

          38. Izdrukājiet rokasgrāmatas lapu


          Rokasgrāmatas lapā ir detalizēta informācija par komandu awk, kā arī visas pieejamās iespējas. Tas ir ārkārtīgi svarīgi cilvēkiem, kuri vēlas rūpīgi apgūt awk komandu.

          $ man awk

          Ja vēlaties apgūt sarežģītas awk funkcijas, tas jums ļoti palīdzēs. Iepazīstieties ar šo dokumentāciju ikreiz, kad esat saskāries ar problēmu.

          39. Izdrukājiet palīdzības lapu


          Palīdzības lapā ir apkopota informācija par visiem iespējamiem komandrindas argumentiem. Varat izsaukt palīdzības ceļvedi, lai iegūtu awk, izmantojot vienu no šīm komandām.

          $ awk -h $ awk --help

          Skatiet šo lapu, ja vēlaties ātri apskatīt visas pieejamās awk iespējas.

          40. Informācija par drukas versiju


          Versijas informācija sniedz mums informāciju par programmu veidošanu. Awk versijas lapā ir tāda informācija kā autortiesības, apkopošanas rīki utt. Šo informāciju varat skatīt, izmantojot vienu no šīm awk komandām.

          $ awk -V $ awk --version

          Beigu domas


          Komanda awk operētājsistēmā Linux ļauj mums veikt visu veidu lietas, tostarp failu apstrādi un sistēmas uzturēšanu. Tas nodrošina daudzveidīgu darbību klāstu, lai diezgan viegli tiktu galā ar ikdienas skaitļošanas uzdevumiem. Mūsu redaktori ir apkopojuši šo rokasgrāmatu ar 40 noderīgām awk komandām, kuras var izmantot teksta manipulācijām vai administrēšanai. Tā kā AWK pati par sevi ir pilnvērtīga programmēšanas valoda, ir vairāki veidi, kā veikt vienu un to pašu darbu. Tāpēc nebrīnieties, kāpēc mēs dažas lietas darām citādi. Jūs vienmēr varat apkopot savas receptes, pamatojoties uz savu prasmju kopumu un pieredzi. Ja jums ir kādi jautājumi, atstājiet mums savas domas.

          • Tagi
          • Programmēšanas rīki
          • Sistēmas utilītas rīki
          Kopīgot Facebook Twitter Pinterest WhatsApp ReddIt Telegramma Viber

            7 KOMENTĀRI

            1. Ramesh 2020. gada 24. aprīlis plkst. 07:48

              Kas ir labākais sed vai awk?

              Atbildēt
              • lauhub 2021. gada 6. janvāris 04:41

                Abi ir labākie:

                - sed ir noderīgs vienkāršiem nomaiņas/izdevuma uzdevumiem, un tam ir daži ierobežojumi sarežģītu uzdevumu programmēšanai (lai gan pieredzējuši lietotāji var darīt daudzas lietas)

                - awk ir jābūt daudzpusīgākam, lai veiktu vienkāršus uzdevumus, bet ļauj sarežģītākām programmām izmantot sarežģītākas datu struktūras.

                Jebkurā gadījumā viss ir atkarīgs no jūsu vajadzībām un zināšanām par šiem rīkiem

                Atbildēt
              • DC 2021. gada 16. jūlijs plkst. 09:17

                Abi ir funkcionāli atšķirīgi. sed ir ierobežota funkcionalitāte. Parasti izmanto, lai atrastu un aizstātu virkņu redaktoru.
                awk tiek izmantots datu manipulācijām un nodrošina vairāk programmēšanas funkcionalitātes

                Atbildēt
            2. Ahmeds 2020. gada 16. aprīlis plkst. 13:24

              Sveiki,
              Piemēri ir lieliski, taču būtu bijis labāk, ja jūs būtu ievietojis izlaidi arī pēc piemēra.

              Atbildēt
              • Rubaiat Hossain 2020. gada 18. aprīlis plkst. 01:28

                Paldies, Ahmed, ka tu paliec pie mums. Tomēr mēs baidāmies, ka katrai komandai pievienojot atsevišķus attēlus, ceļvedis būs ārkārtīgi garš, un tāpēc lietotāji, kas to lasa no maza ekrāna ierīcēm, piemēram, tālruņiem/planšetdatoriem, var saskarties ar nevēlamu ritināšanas pieredzi.

                Turklāt mēs mudinām mūsu lasītājus uzlabot šīs awk komandas Linux, atrodoties ceļā, un izmēģināt tās no pirmavotiem. Tādā veidā jūs tos apgūsit ātrāk.

                Atbildēt
            3. Stefans 2020. gada 6. aprīlī plkst. 10:54

              Lieliski piemēri. Paldies par šo

              Atbildēt
            4. Kārans Grovers 2020. gada 2. aprīlī plkst. 17:29

              jauki awk piemēri

              Atbildēt

            ATSTĀJ ATBILDI Atcelt atbildi

            Komentārs: Lūdzu, ievadiet savu komentāru! Vārds:* Lūdzu, ievadiet savu vārdu šeit E -pasts:* Jūs esat ievadījis nepareizu e -pasta adresi! Lūdzu, šeit ievadiet savu e -pasta adresi Vietne:

            Saglabājiet manu vārdu, e -pastu un vietni šajā pārlūkprogrammā, lai nākamreiz komentētu.

            spot_img

            Jaunākā ziņa

            Android

            10 labākās sejas maiņas lietotnes Android un iOS ierīcēm

            Windows OS

            Kā ieplānot Windows 10, lai automātiski iztukšotu atkritni

            Android

            10 labākās rēķinu izrakstīšanas lietotnes Android ierīcei, lai ātri samaksātu

            Windows OS

            10 labākās GPU etalona programmatūras jūsu datoram

            Vajag izlasīt

            Linux

            Kā instalēt un konfigurēt XAMPP operētājsistēmā Ubuntu Linux

            Linux

            Ubuntu Communitheme - Jauna Ubuntu kopienas tēma

            Linux

            Kā instalēt programmatūru no avota koda savā Linux sistēmā

            Linux

            RedNotebook - mūsdienīga un bezmaksas dienasgrāmatu un žurnālu programmatūra Linux

            Saistītā ziņa

            Kā instalēt un iestatīt kabīnes tīmekļa konsoli Linux sistēmā

            Kā instalēt un iestatīt Yii PHP Framework Ubuntu Linux

            Kā labot W: dažiem indeksa failiem neizdevās lejupielādēt kļūdu Ubuntu Linux

            Kā instalēt un iestatīt 1Password Linux darbvirsmā

            Kā instalēt jaunāko GNU Nano teksta redaktoru Linux darbvirsmā

            Kā instalēt jaunu relikvijas infrastruktūras aģentu Linux sistēmā

            , tolower(
            Mājas A-Z komandas 40 Praktiska un noderīga awk komanda Linux un BSD AutorsMehedi Hasan InA-Z komandasPiedāvātie 1271 7

            SATURS

            1. Izpratne par AWK programmām
            2. Praktiski awk komandu piemēri Linux
              1. 1. Izdrukājiet specifiskus laukus no teksta izvades
              2. 2. Drukājiet vairākus laukus no teksta izvades
              3. 3. Izmantojiet BEGIN paziņojumus
              4. 4. Izmantojiet END paziņojumus
              5. 5. Meklēšana, izmantojot modeļus
              6. 6. Izņemiet informāciju no failiem
              7. 7. Izlasiet AWK skriptu no avota faila
              8. 8. Iestatiet ievades lauka atdalītāju
              9. 9. Drukāt informāciju, pamatojoties uz stāvokli
              10. 10. Drukājiet informāciju, salīdzinot regulārās izteiksmes
              11. 11. Saskaitiet kopējo ievadīto rindu skaitu
              12. 12. Iestatiet izvades lauka atdalītāju
              13. 13. If Construct izmantošana
              14. 14. If-Else Constructs izmantošana
              15. 15. Iestatiet lauka platumu
              16. 16. Iestatiet ierakstu atdalītāju
              17. 17. Drukas vides mainīgie
              18. 18. Izlaist dažus laukus no izvades
              19. 19. Noņemiet tukšās līnijas
              20. 20. Noņemiet beigu atstarpes
              21. 21. Pārbaudiet lauku skaitu katrā rindā
              22. 22. Pārbaudiet pašreizējo faila nosaukumu
              23. 23. Pārbaudiet apstrādāto ierakstu skaitu
              24. 24. Izdrukājiet ierakstu kopējo rakstzīmju skaitu
              25. 25. Izdrukājiet visas līnijas ilgāk par noteikto garumu
              26. 26. Izdrukājiet rindu, rakstzīmju un vārdu skaitu
              27. 27. Aprēķiniet vārdu biežumu
              28. 28. Pārdēvēt failus, izmantojot AWK
              29. 29. Izdrukājiet skaitļa kvadrātsakni
              30. 30. Izdrukājiet skaitļa logaritmu
              31. 31. Izdrukājiet skaitļa eksponenciālu
              32. 32. Izveidojiet nejaušus skaitļus, izmantojot AWK
              33. 33. Krāsu sastādītāja brīdinājumi sarkanā krāsā
              34. 34. Izdrukājiet failu sistēmas UUID informāciju
              35. 35. Izdrukājiet Linux kodola attēla versiju
              36. 36. Pievienojiet rindu numurus pirms rindām
              37. 37. Izdrukājiet failu pēc satura kārtošanas
              38. 38. Izdrukājiet rokasgrāmatas lapu
              39. 39. Izdrukājiet palīdzības lapu
              40. 40. Informācija par drukas versiju
            3. Beigu domas

            AWK ir spēcīga> pilnvērtīga programmēšanas valoda . AWK savu nosaukumu ieguvis no tā autoru iniciāļiem - Aho, Veinbergera un Kernighana. Komanda awk Linux un citās Unix sistēmās izsauc tulku, kas palaiž AWK skriptus. Nesenās sistēmās pastāv vairākas awk ieviešanas, piemēram, gawk (GNU awk), mawk (Minimal awk) un nawk (New awk). Apskatiet tālāk sniegtos piemērus, ja vēlaties apgūt awk.

            Izpratne par AWK programmām


            Programmas, kas rakstītas awk, sastāv no noteikumiem, kas ir vienkārši modeļu un darbību pāris. Modeļi ir sagrupēti iekavās {}, un darbības daļa tiek aktivizēta ikreiz, kad awk atrod tekstam atbilstošus tekstus. Lai gan awk tika izstrādāts vienas līnijas rakstīšanai, pieredzējuši lietotāji ar to var viegli rakstīt sarežģītus skriptus.

            awk komanda Linux

            AWK programmas ir ļoti noderīgas liela mēroga failu apstrādei. Tas identificē teksta laukus, izmantojot speciālās rakstzīmes un atdalītājus. Tā piedāvā arī augsta līmeņa programmēšanas konstrukcijas, piemēram, masīvus un cilpas. Tāpēc ir ļoti iespējams rakstīt stabilas programmas, izmantojot vienkāršu awk.

            Praktiski awk komandu piemēri Linux


            Administratori parasti izmanto awk datu iegūšanai un ziņošanai kopā ar cita veida failu manipulācijām. Zemāk mēs detalizētāk apspriedām awk. Rūpīgi izpildiet komandas un izmēģiniet tās savā terminālī, lai iegūtu pilnīgu izpratni.

            1. Izdrukājiet specifiskus laukus no teksta izvades


            Visvairāk plaši izmantotas Linux komandas parādīt savus rezultātus, izmantojot dažādus laukus. Parasti mēs izmantojam Linux izgriešanas komandu, lai no šādiem datiem iegūtu noteiktu lauku. Tomēr zemāk esošā komanda parāda, kā to izdarīt, izmantojot komandu awk.

            $ who | awk '{print $1}'

            Šī komanda parādīs tikai pirmo lauku no komandas who izvades. Tātad jūs vienkārši iegūsit visu pašlaik reģistrēto lietotāju lietotājvārdus. Šeit, $ 1 apzīmē pirmo lauku. Jums ir jāizmanto $ N ja vēlaties iegūt N-to lauku.

            2. Drukājiet vairākus laukus no teksta izvades


            Awk tulks ļauj mums izdrukāt vēlamo lauku skaitu. Tālāk sniegtajos piemēros ir parādīts, kā iegūt pirmos divus laukus no komandas who izvades.

            $ who | awk '{print $1, $2}'

            Varat arī kontrolēt izvades lauku secību. Šajā piemērā vispirms tiek parādīta otrā sleja, ko izveidojusi komanda who, un pēc tam pirmā kolonna otrajā laukā.

            $ who | awk '{print $2, $1}'

            Vienkārši atstājiet laukā parametrus ( $ N ), lai parādītu visus datus.

            3. Izmantojiet BEGIN paziņojumus


            BEGIN paziņojums ļauj lietotājiem izvadē izdrukāt zināmu informāciju. To parasti izmanto awk ģenerēto izejas datu formatēšanai. Šī paziņojuma sintakse ir parādīta zemāk.

            BEGIN { Actions} {ACTION}

            Darbības, kas veido sadaļu SĀKT, vienmēr tiek aktivizētas. Tad awk izlasa atlikušās rindas pa vienai un redz, vai kaut kas ir jādara.

            $ who | awk 'BEGIN {print 'User	From'} {print $1, $2}'

            Iepriekš minētā komanda iezīmēs divus izvades laukus, kas iegūti no komandas izvades.

            4. Izmantojiet END paziņojumus


            Varat arī izmantot paziņojumu END, lai pārliecinātos, ka noteiktas darbības vienmēr tiek veiktas jūsu darbības beigās. Vienkārši ievietojiet sadaļu END pēc galvenā darbību kopuma.

            $ who | awk 'BEGIN {print 'User	From'} {print $1, $2} END {print '--COMPLETED--'}'

            Iepriekš minētā komanda pievienos norādīto virkni izvades beigās.

            5. Meklēšana, izmantojot modeļus


            Liela daļa awk darbu ir saistīta ar modeļu saskaņošanu un regulāro izteiksmi. Kā mēs jau esam apsprieduši, awk meklē modeļus katrā ievades rindā un veic darbību tikai tad, kad tiek aktivizēta atbilstība. Mūsu iepriekšējie noteikumi sastāvēja tikai no darbībām. Zemāk mēs esam ilustrējuši modeļu atbilstības pamatus, izmantojot Linux komandu awk.

            $ who | awk '/mary/ {print}'

            Šī komanda redzēs, vai lietotājs Marija pašlaik ir pieteicies vai nē. Ja tiks atrasta atbilstība, tā izvadīs visu rindu.

            6. Izņemiet informāciju no failiem


            Komanda awk ļoti labi darbojas ar failiem, un to var izmantot sarežģītiem failu apstrādes uzdevumiem. Šī komanda parāda, kā awk apstrādā failus.

            $ awk '/hello/ {print}' /usr/share/dict/american-english

            Šī komanda meklē modeli “sveiki” amerikāņu-angļu vārdnīcas failā. Tas ir pieejams lielākajā daļā Linux balstītas izplatīšanas . Tādējādi šajā failā varat viegli izmēģināt awk programmas.

            awk modeļa meklēšana

            7. Izlasiet AWK skriptu no avota faila


            Lai gan viena līnija programmu rakstīšana ir noderīga, jūs varat arī rakstīt lielas programmas, pilnībā izmantojot awk. Jūs vēlaties tos saglabāt un palaist programmu, izmantojot avota failu.

            $ awk -f script-file $ awk --file script-file

            The -f vai - fails opcija ļauj mums norādīt programmas failu. Tomēr jums nav jāizmanto pēdiņas (‘’) skripta faila iekšienē, jo Linux apvalks šādā veidā neskaidros programmas kodu.

            8. Iestatiet ievades lauka atdalītāju


            Lauku atdalītājs ir norobežotājs, kas sadala ievades ierakstu. Mēs varam viegli norādīt lauku atdalītājus awk, izmantojot -F vai -lauku atdalītājs iespēja. Pārbaudiet zemāk esošās komandas, lai redzētu, kā tas darbojas.

            $ echo 'This-is-a-simple-example' | awk -F - ' {print $1} ' $ echo 'This-is-a-simple-example' | awk --field-separator - ' {print $1} '

            Tas darbojas vienādi, ja Linux izmanto skripta failus, nevis vienu līniju awk komandu.

            9. Drukāt informāciju, pamatojoties uz stāvokli


            Esam apsprieduši Linux izgriešanas komanda iepriekšējā ceļvedī. Tagad mēs parādīsim, kā iegūt informāciju, izmantojot awk, tikai tad, ja ir noteikti kritēriji. Mēs izmantosim to pašu testa failu, ko izmantojām šajā rokasgrāmatā. Tāpēc dodieties tur un izveidojiet kopiju test.txt failu.

            $ awk '$4 > 50' test.txt

            Šī komanda izdrukās visas valstis no faila test.txt, kurā ir vairāk nekā 50 miljoni iedzīvotāju.

            10. Drukājiet informāciju, salīdzinot regulārās izteiksmes


            Šī awk komanda pārbauda, ​​vai jebkuras rindas trešais lauks satur rakstu “Lira”, un, ja tiek atrasta atbilstība, izdrukā visu rindu. Mēs atkal izmantojam failu test.txt, ko izmanto, lai ilustrētu Linux izgriešanas komanda . Tāpēc pirms turpināt, pārliecinieties, vai esat ieguvis šo failu.

            $ awk '$3 ~ /Lira/' test.txt

            Ja vēlaties, varat drukāt tikai noteiktu daļu no jebkuras spēles.

            11. Saskaitiet kopējo ievadīto rindu skaitu


            Komandai awk ir daudz speciālu mainīgo, kas ļauj mums viegli veikt daudzas uzlabotas lietas. Viens no šādiem mainīgajiem ir NR, kas satur pašreizējo rindas numuru.

            $ awk 'END {print NR} ' test.txt

            Šī komanda izvadīs, cik rindu ir mūsu failā test.txt. Tas vispirms atkārtojas pa katru rindu, un, kad tas ir sasniedzis END, tas izdrukās NR vērtību, kas šajā gadījumā satur kopējo rindu skaitu.

            12. Iestatiet izvades lauka atdalītāju


            Iepriekš mēs esam parādījuši, kā atlasīt ievades lauku atdalītājus, izmantojot -F vai -lauku atdalītājs iespēja. Komanda awk arī ļauj mums norādīt izvades lauku atdalītāju. Zemāk redzamais piemērs to parāda, izmantojot praktisku piemēru.

            $ date | awk 'OFS='-' {print$2,$3,$6}'

            Šī komanda izdrukā pašreizējo datumu, izmantojot formātu dd-mm-yy. Palaidiet datuma programmu bez awk, lai redzētu, kā izskatās noklusējuma izvade.

            13. If Construct izmantošana


            Tāpat kā citi populāras programmēšanas valodas , awk arī nodrošina lietotājus ar if-else konstrukcijām. Ja paziņojumam awk ir šāda sintakse.

            if (expression) { first_action second_action }

            Atbilstošās darbības tiek veiktas tikai tad, ja nosacījuma izteiksme ir patiesa. Zemāk redzamais piemērs to parāda, izmantojot mūsu atsauces failu test.txt .

            $ awk '{ if ($4>100) print }' test.txt

            Jums nav stingri jāuztur ievilkums.

            14. If-Else Constructs izmantošana


            Izmantojot zemāk esošo sintaksi, varat izveidot noderīgas trepes. Tie ir noderīgi, izstrādājot sarežģītus awk skriptus, kas attiecas uz dinamiskiem datiem.

            if (expression) first_action else second_action
            $ awk '{ if ($4>100) print; else print }' test.txt

            Iepriekš minētā komanda drukās visu atsauces failu, jo ceturtais lauks katrai rindai nav lielāks par 100.

            15. Iestatiet lauka platumu


            Dažreiz ievades dati ir diezgan netīri, un lietotājiem var būt grūti tos vizualizēt savos pārskatos. Par laimi, awk nodrošina jaudīgu iebūvētu mainīgo FIELDWIDTHS, kas ļauj mums definēt ar atstarpēm atdalītu platumu sarakstu.

            $ echo 5675784464657 | awk 'BEGIN {FIELDWIDTHS= '3 4 5'} {print $1, $2, $3}'

            Tas ir ļoti noderīgi, analizējot izkliedētos datus, jo mēs varam kontrolēt izvades lauka platumu tieši tā, kā vēlamies.

            lauka platums awk

            16. Iestatiet ierakstu atdalītāju


            RS vai ierakstu atdalītājs ir vēl viens iebūvēts mainīgais, kas ļauj mums norādīt, kā ieraksti tiek atdalīti. Vispirms izveidosim failu, kas parādīs šī awk mainīgā darbību.

            $ cat new.txt Melinda James 23 New Hampshire (222) 466-1234 Daniel James 99 Phonenix Road (322) 677-3412
            $ awk 'BEGIN{FS='
            '; RS=''} {print $1,$3}' new.txt

            Šī komanda parsēs dokumentu un izslēgs abu personu vārdu un adresi.

            17. Drukas vides mainīgie


            Komanda awk Linux ļauj mums viegli izdrukāt vides mainīgos, izmantojot mainīgo ENVIRON. Zemāk esošā komanda parāda, kā to izmantot, lai izdrukātu mainīgā PATH saturu.

            $ awk 'BEGIN{ print ENVIRON['PATH'] }'

            Varat izdrukāt jebkura vides mainīgā saturu, aizstājot mainīgā ENVIRON argumentu. Zemāk esošā komanda izdrukā vides mainīgā HOME vērtību.

            $ awk 'BEGIN{ print ENVIRON['HOME'] }'

            18. Izlaist dažus laukus no izvades


            Komanda awk ļauj mums izlaist noteiktas rindas no mūsu izvades. Šī komanda to parādīs, izmantojot mūsu atsauces failu test.txt .

            $ awk -F':' '{$2=''; print}' test.txt

            Šī komanda izlaidīs mūsu faila otro kolonnu, kurā ir katras valsts galvaspilsētas nosaukums. Varat arī izlaist vairākus laukus, kā parādīts nākamajā komandā.

            $ awk -F':' '{$2='';$3='';print}' test.txt

            19. Noņemiet tukšās līnijas


            Dažreiz dati var saturēt pārāk daudz tukšu rindu. Jūs varat izmantot komandu awk, lai diezgan viegli noņemtu tukšās rindas. Pārbaudiet nākamo komandu, lai redzētu, kā tas darbojas praksē.

            $ awk '/^[ 	]*$/{next}{print}' new.txt

            Mēs esam noņēmuši visas tukšās rindas no faila new.txt, izmantojot vienkāršu regulāro izteiksmi un iebūvēto awk, ko sauc par nākamo.

            20. Noņemiet beigu atstarpes


            Daudzu Linux komandu izvade satur beigu atstarpes. Mēs varam izmantot komandu awk operētājsistēmā Linux, lai noņemtu tādas atstarpes kā atstarpes un cilnes. Pārbaudiet zemāk esošo komandu, lai uzzinātu, kā risināt šādas problēmas, izmantojot awk.

            $ awk '{sub(/[ 	]*$/, '');print}' new.txt test.txt

            Pievienojiet mūsu atsauces failiem dažas atstarpes un pārbaudiet, vai awk tās ir veiksmīgi noņemtas. Tas manā mašīnā to izdarīja veiksmīgi.

            21. Pārbaudiet lauku skaitu katrā rindā


            Mēs varam viegli pārbaudīt, cik lauku ir rindā, izmantojot vienkāršu awk one-liner. Ir daudz veidu, kā to izdarīt, taču šim uzdevumam mēs izmantosim dažus no awk iebūvētajiem mainīgajiem. Mainīgais NR dod mums rindas numuru, un NF mainīgais nodrošina lauku skaitu.

            $ awk '{print NR,'-->',NF}' test.txt

            Tagad mēs varam apstiprināt, cik daudz lauku ir katrā rindā test.txt dokuments. Tā kā katra šī faila rinda satur 5 laukus, mēs esam pārliecināti, ka komanda darbojas, kā paredzēts.

            22. Pārbaudiet pašreizējo faila nosaukumu


            Awk mainīgais FILENAME tiek izmantots pašreizējā ievades faila nosaukuma pārbaudei. Mēs demonstrējam, kā tas darbojas, izmantojot vienkāršu piemēru. Tomēr tas var būt noderīgi situācijās, kad faila nosaukums nav skaidri zināms vai ja ir vairāk nekā viens ievades fails.

            $ awk '{print FILENAME}' test.txt $ awk '{print FILENAME}' test.txt new.txt

            Iepriekš minētās komandas izdrukā faila nosaukumu awk, ar kuru strādā, katru reizi, kad tiek apstrādāta jauna ievades failu rinda.

            23. Pārbaudiet apstrādāto ierakstu skaitu


            Šis piemērs parādīs, kā mēs varam pārbaudīt ierakstu skaitu, ko apstrādā komanda awk. Tā kā liels skaits Linux sistēmas administratoru pārskatu ģenerēšanai izmanto awk, tas viņiem ir ļoti noderīgi.

            $ awk '{print 'Processing Record - ',NR;} END {print '
            Total Records Processed:', NR;}' test.txt

            Es bieži izmantoju šo awk fragmentu, lai iegūtu skaidru pārskatu par savām darbībām. Jūs varat to viegli pielāgot, lai pielāgotos jaunām idejām vai darbībām.

            apstrādāto rindu skaits awk

            24. Izdrukājiet ierakstu kopējo rakstzīmju skaitu


            Awk valoda nodrošina ērtu funkciju garums (), kas norāda, cik rakstzīmju ir ierakstā. Tas ir ļoti noderīgi vairākos scenārijos. Ātri apskatiet šo piemēru, lai redzētu, kā tas darbojas.

            $ echo 'A random text string...' | awk '{ print length($0); }'
            $ awk '{ print length($0); }' /etc/passwd

            Iepriekš minētā komanda drukās kopējo rakstzīmju skaitu katrā ievades virknes vai faila rindā.

            25. Izdrukājiet visas līnijas ilgāk par noteikto garumu


            Iepriekšminētajai komandai mēs varam pievienot dažus nosacījumus un likt tai drukāt tikai tās rindas, kas ir lielākas par iepriekš noteiktu garumu. Tas ir noderīgi, ja jums jau ir priekšstats par konkrēta ieraksta garumu.

            $ echo 'A random text string...' | awk 'length($0) > 10'
            $ awk '{ length($0) > 5; }' /etc/passwd

            Jūs varat izmantot vairāk iespēju un/vai argumentu, lai pielāgotu komandu, pamatojoties uz jūsu prasībām.

            26. Izdrukājiet rindu, rakstzīmju un vārdu skaitu


            Šī Linux komanda awk izdrukā rindu, rakstzīmju un vārdu skaitu noteiktā ievadē. Šīs darbības veikšanai tiek izmantots mainīgais NR, kā arī dažas pamata aritmētikas.

            $ echo 'This is a input line...' | awk '{ w += NF; c += length + 1 } END { print NR, w, c }'

            Tas parāda, ka ievades virknē ir 1 rinda, 5 vārdi un tieši 24 rakstzīmes.

            27. Aprēķiniet vārdu biežumu


            Mēs varam apvienot asociatīvos masīvus un for ciklu in awk, lai aprēķinātu dokumenta vārdu biežumu. Šī komanda var šķist nedaudz sarežģīta, taču tā ir diezgan vienkārša, kad skaidri saprotat pamatkonstrukcijas.

            $ awk 'BEGIN {FS='[^a-zA-Z]+' } { for (i=1; i<=NF; i++) words[tolower($i)]++ } END { for (i in words) print i, words[i] }' test.txt

            Ja jums ir problēmas ar vienas līnijas fragmentu, nokopējiet šo kodu jaunā failā un palaidiet to, izmantojot avotu.

            $ cat > frequency.awk BEGIN { FS='[^a-zA-Z]+' } { for (i=1; i<=NF; i++) words[tolower($i)]++ } END { for (i in words) print i, words[i] }

            Pēc tam palaidiet to, izmantojot -f iespēja.

            $ awk -f frequency.awk test.txt

            28. Pārdēvēt failus, izmantojot AWK


            Komandu awk var izmantot, lai pārdēvētu visus failus, kas atbilst noteiktiem kritērijiem. Šī komanda parāda, kā izmantot awk, lai pārdēvētu visus direktorijā esošos .MP3 failus uz .mp3 failiem.

            $ touch {a,b,c,d,e}.MP3 $ ls *.MP3 | awk '{ printf('mv '%s' '%s'
            ', $0, tolower($0)) }' $ ls *.MP3 | awk '{ printf('mv '%s' '%s'
            ', $0, tolower($0)) }' | sh

            Pirmkārt, mēs izveidojām dažus demonstrācijas failus ar paplašinājumu .MP3. Otrā komanda parāda lietotājam, kas notiek, ja pārdēvēšana ir veiksmīga. Visbeidzot, pēdējā komanda pārdēvē operāciju, izmantojot Linux komandu mv.

            29. Izdrukājiet skaitļa kvadrātsakni


            AWK piedāvā vairākas iebūvētas funkcijas ciparu manipulēšanai. Viens no tiem ir funkcija sqrt (). Tā ir C līdzīga funkcija, kas atgriež dotā skaitļa kvadrātsakni. Ātri apskatiet nākamo piemēru, lai redzētu, kā tas darbojas kopumā.

            $ awk 'BEGIN{ print sqrt(36); print sqrt(0); print sqrt(-16) }'

            Tā kā jūs nevarat noteikt negatīvā skaitļa kvadrātsakni, izvadē sqrt (-12) vietā tiks parādīts īpašs atslēgvārds ar nosaukumu “nan”.

            sqrt funkcija Linux awk komandā

            30. Izdrukājiet skaitļa logaritmu


            Funkcijas žurnāls awk () nodrošina skaitļa dabisko logaritmu. Tomēr tas darbosies tikai ar pozitīviem skaitļiem, tāpēc ņemiet vērā lietotāju ievades apstiprināšanu. Pretējā gadījumā kāds var pārtraukt jūsu awk programmas un iegūt priviliģētu piekļuvi sistēmas resursiem.

            $ awk 'BEGIN{ print log(36); print log(0); print log(-16) }'

            Jums vajadzētu redzēt logaritmu 36 un pārbaudīt, vai logaritms 0 ir bezgalība, un negatīvās vērtības žurnāls ir “Nav skaitlis” vai nan.

            31. Izdrukājiet skaitļa eksponenciālu


            Eksponenciālais os a skaitlis n nodrošina e^n vērtību. To parasti izmanto awk skriptos, kas nodarbojas ar lieliem cipariem vai sarežģītu aritmētisko loģiku. Mēs varam ģenerēt skaitļa eksponenciālu, izmantojot iebūvēto awk funkciju exp ().

            $ awk 'BEGIN{ print exp(30); print log(0); print exp(-16) }'

            Tomēr awk nevar aprēķināt eksponenciālu lieliem skaitļiem. Jums vajadzētu veikt šādus aprēķinus, izmantojot zema līmeņa programmēšanas valodas, piemēram, C, un norādīt vērtību saviem awk skriptiem.

            32. Izveidojiet nejaušus skaitļus, izmantojot AWK


            Mēs varam izmantot komandu awk Linux, lai ģenerētu nejaušus skaitļus. Šie skaitļi būs diapazonā no 0 līdz 1, bet nekad 0 vai 1. Jūs varat reizināt fiksētu vērtību ar iegūto skaitli, lai iegūtu lielāku izlases vērtību.

            $ awk 'BEGIN{ print rand(); print rand()*99 }'

            Funkcijai rand () nav nepieciešami argumenti. Turklāt šīs funkcijas radītie skaitļi nav precīzi nejauši, bet drīzāk pseidogadījumi. Turklāt ir diezgan viegli paredzēt šos skaitļus no skriešanas uz skrējienu. Tāpēc jums nevajadzētu paļauties uz tiem, veicot sensitīvus aprēķinus.

            33. Krāsu sastādītāja brīdinājumi sarkanā krāsā


            Mūsdienu Linux kompilatori brīdinās, ja jūsu kods nesaglabā valodas standartus vai ja tajā ir kļūdas, kas neaptur programmas izpildi. Šī komanda awk sarkanā krāsā drukās kompilatora ģenerētās brīdinājuma līnijas.

            $ gcc -Wall main.c |& awk '/: warning:/{print 'x1B[01;31m' $0 'x1B[m';next;}{print}'

            Šī komanda ir noderīga, ja vēlaties precīzi noteikt kompilatora brīdinājumus. Šo komandu varat izmantot ar jebkuru kompilatoru, izņemot gcc, vienkārši mainiet modeli /: brīdinājums: /, lai atspoguļotu konkrēto kompilatoru.

            34. Izdrukājiet failu sistēmas UUID informāciju


            UUID vai Universāli unikāls identifikators ir skaitlis, ko var izmantot, lai identificētu tādus resursus kā Linux failu sistēma . Mēs varam vienkārši izdrukāt mūsu failu sistēmas UUID informāciju, izmantojot šādu Linux awk komandu.

            $ awk '/UUID/ {print $0}' /etc/fstab

            Šī komanda meklē tekstu UUID /etc/fstab failu, izmantojot awk modeļus. Tas atgriež komentāru no faila, kas mūs neinteresē. Zemāk esošā komanda nodrošinās, ka mēs saņemam tikai tās rindas, kas sākas ar UUID.

            $ awk '/^UUID/ {print $1}' /etc/fstab

            Tas ierobežo izvadi līdz pirmajam laukam. Tātad mēs iegūstam tikai UUID numurus.

            35. Izdrukājiet Linux kodola attēla versiju


            Tiek izmantoti dažādi Linux kodola attēli dažādi Linux izplatījumi . Mēs varam viegli izdrukāt precīzu kodola attēlu, uz kura balstās mūsu sistēma, izmantojot awk. Pārbaudiet šo komandu, lai redzētu, kā tas darbojas kopumā.

            $ uname -a | awk '{print $3}'

            Mēs vispirms esam izdevuši komandu uname ar -uz opciju un pēc tam pārsūtīja šos datus uz awk. Tad mēs esam ieguvuši kodola attēla versijas informāciju, izmantojot awk.

            36. Pievienojiet rindu numurus pirms rindām


            Lietotāji diezgan bieži var saskarties ar teksta failiem, kas nesatur rindu numurus. Par laimi, jūs varat viegli pievienot rindu numurus failam, izmantojot Linux komandu awk. Rūpīgi apskatiet zemāk redzamo piemēru, lai redzētu, kā tas darbojas reālajā dzīvē.

            $ awk '{ print FNR '. ' $0 ;next}{print}' test.txt

            Iepriekš minētā komanda pievienos rindas numuru pirms katras mūsu test.txt atsauces faila rindas. Lai to novērstu, tas izmanto iebūvēto awk mainīgo FNR.

            pievienojiet rindu numurus, izmantojot komandu awk

            37. Izdrukājiet failu pēc satura kārtošanas


            Mēs varam arī izmantot awk, lai izdrukātu sakārtotu visu rindu sarakstu. Šīs komandas drukā visu mūsu test.txt valstu nosaukumu sakārtotā secībā.

            $ awk -F ':' '{ print $1 }' test.txt | sort

            Nākamā komanda drukās visu lietotāju pieteikšanās vārdu no /etc/passwd failu.

            $ awk -F ':' '{ print $1 }' /etc/passwd | sort

            Jūs varat viegli mainīt kārtošanas kārtību, mainot kārtošanas komandu.

            38. Izdrukājiet rokasgrāmatas lapu


            Rokasgrāmatas lapā ir detalizēta informācija par komandu awk, kā arī visas pieejamās iespējas. Tas ir ārkārtīgi svarīgi cilvēkiem, kuri vēlas rūpīgi apgūt awk komandu.

            $ man awk

            Ja vēlaties apgūt sarežģītas awk funkcijas, tas jums ļoti palīdzēs. Iepazīstieties ar šo dokumentāciju ikreiz, kad esat saskāries ar problēmu.

            39. Izdrukājiet palīdzības lapu


            Palīdzības lapā ir apkopota informācija par visiem iespējamiem komandrindas argumentiem. Varat izsaukt palīdzības ceļvedi, lai iegūtu awk, izmantojot vienu no šīm komandām.

            $ awk -h $ awk --help

            Skatiet šo lapu, ja vēlaties ātri apskatīt visas pieejamās awk iespējas.

            40. Informācija par drukas versiju


            Versijas informācija sniedz mums informāciju par programmu veidošanu. Awk versijas lapā ir tāda informācija kā autortiesības, apkopošanas rīki utt. Šo informāciju varat skatīt, izmantojot vienu no šīm awk komandām.

            $ awk -V $ awk --version

            Beigu domas


            Komanda awk operētājsistēmā Linux ļauj mums veikt visu veidu lietas, tostarp failu apstrādi un sistēmas uzturēšanu. Tas nodrošina daudzveidīgu darbību klāstu, lai diezgan viegli tiktu galā ar ikdienas skaitļošanas uzdevumiem. Mūsu redaktori ir apkopojuši šo rokasgrāmatu ar 40 noderīgām awk komandām, kuras var izmantot teksta manipulācijām vai administrēšanai. Tā kā AWK pati par sevi ir pilnvērtīga programmēšanas valoda, ir vairāki veidi, kā veikt vienu un to pašu darbu. Tāpēc nebrīnieties, kāpēc mēs dažas lietas darām citādi. Jūs vienmēr varat apkopot savas receptes, pamatojoties uz savu prasmju kopumu un pieredzi. Ja jums ir kādi jautājumi, atstājiet mums savas domas.

            • Tagi
            • Programmēšanas rīki
            • Sistēmas utilītas rīki
            Kopīgot Facebook Twitter Pinterest WhatsApp ReddIt Telegramma Viber

              7 KOMENTĀRI

              1. Ramesh 2020. gada 24. aprīlis plkst. 07:48

                Kas ir labākais sed vai awk?

                Atbildēt
                • lauhub 2021. gada 6. janvāris 04:41

                  Abi ir labākie:

                  - sed ir noderīgs vienkāršiem nomaiņas/izdevuma uzdevumiem, un tam ir daži ierobežojumi sarežģītu uzdevumu programmēšanai (lai gan pieredzējuši lietotāji var darīt daudzas lietas)

                  - awk ir jābūt daudzpusīgākam, lai veiktu vienkāršus uzdevumus, bet ļauj sarežģītākām programmām izmantot sarežģītākas datu struktūras.

                  Jebkurā gadījumā viss ir atkarīgs no jūsu vajadzībām un zināšanām par šiem rīkiem

                  Atbildēt
                • DC 2021. gada 16. jūlijs plkst. 09:17

                  Abi ir funkcionāli atšķirīgi. sed ir ierobežota funkcionalitāte. Parasti izmanto, lai atrastu un aizstātu virkņu redaktoru.
                  awk tiek izmantots datu manipulācijām un nodrošina vairāk programmēšanas funkcionalitātes

                  Atbildēt
              2. Ahmeds 2020. gada 16. aprīlis plkst. 13:24

                Sveiki,
                Piemēri ir lieliski, taču būtu bijis labāk, ja jūs būtu ievietojis izlaidi arī pēc piemēra.

                Atbildēt
                • Rubaiat Hossain 2020. gada 18. aprīlis plkst. 01:28

                  Paldies, Ahmed, ka tu paliec pie mums. Tomēr mēs baidāmies, ka katrai komandai pievienojot atsevišķus attēlus, ceļvedis būs ārkārtīgi garš, un tāpēc lietotāji, kas to lasa no maza ekrāna ierīcēm, piemēram, tālruņiem/planšetdatoriem, var saskarties ar nevēlamu ritināšanas pieredzi.

                  Turklāt mēs mudinām mūsu lasītājus uzlabot šīs awk komandas Linux, atrodoties ceļā, un izmēģināt tās no pirmavotiem. Tādā veidā jūs tos apgūsit ātrāk.

                  Atbildēt
              3. Stefans 2020. gada 6. aprīlī plkst. 10:54

                Lieliski piemēri. Paldies par šo

                Atbildēt
              4. Kārans Grovers 2020. gada 2. aprīlī plkst. 17:29

                jauki awk piemēri

                Atbildēt

              ATSTĀJ ATBILDI Atcelt atbildi

              Komentārs: Lūdzu, ievadiet savu komentāru! Vārds:* Lūdzu, ievadiet savu vārdu šeit E -pasts:* Jūs esat ievadījis nepareizu e -pasta adresi! Lūdzu, šeit ievadiet savu e -pasta adresi Vietne:

              Saglabājiet manu vārdu, e -pastu un vietni šajā pārlūkprogrammā, lai nākamreiz komentētu.

              spot_img

              Jaunākā ziņa

              Android

              10 labākās sejas maiņas lietotnes Android un iOS ierīcēm

              Windows OS

              Kā ieplānot Windows 10, lai automātiski iztukšotu atkritni

              Android

              10 labākās rēķinu izrakstīšanas lietotnes Android ierīcei, lai ātri samaksātu

              Windows OS

              10 labākās GPU etalona programmatūras jūsu datoram

              Vajag izlasīt

              Linux

              Kā instalēt un konfigurēt XAMPP operētājsistēmā Ubuntu Linux

              Linux

              Ubuntu Communitheme - Jauna Ubuntu kopienas tēma

              Linux

              Kā instalēt programmatūru no avota koda savā Linux sistēmā

              Linux

              RedNotebook - mūsdienīga un bezmaksas dienasgrāmatu un žurnālu programmatūra Linux

              Saistītā ziņa

              Kā instalēt un iestatīt kabīnes tīmekļa konsoli Linux sistēmā

              Kā instalēt un iestatīt Yii PHP Framework Ubuntu Linux

              Kā labot W: dažiem indeksa failiem neizdevās lejupielādēt kļūdu Ubuntu Linux

              Kā instalēt un iestatīt 1Password Linux darbvirsmā

              Kā instalēt jaunāko GNU Nano teksta redaktoru Linux darbvirsmā

              Kā instalēt jaunu relikvijas infrastruktūras aģentu Linux sistēmā

              )) }' $ ls *.MP3 | awk '{ printf('mv '%s' '%s' ',
              Mājas A-Z komandas 40 Praktiska un noderīga awk komanda Linux un BSD AutorsMehedi Hasan InA-Z komandasPiedāvātie 1271 7

              SATURS

              1. Izpratne par AWK programmām
              2. Praktiski awk komandu piemēri Linux
                1. 1. Izdrukājiet specifiskus laukus no teksta izvades
                2. 2. Drukājiet vairākus laukus no teksta izvades
                3. 3. Izmantojiet BEGIN paziņojumus
                4. 4. Izmantojiet END paziņojumus
                5. 5. Meklēšana, izmantojot modeļus
                6. 6. Izņemiet informāciju no failiem
                7. 7. Izlasiet AWK skriptu no avota faila
                8. 8. Iestatiet ievades lauka atdalītāju
                9. 9. Drukāt informāciju, pamatojoties uz stāvokli
                10. 10. Drukājiet informāciju, salīdzinot regulārās izteiksmes
                11. 11. Saskaitiet kopējo ievadīto rindu skaitu
                12. 12. Iestatiet izvades lauka atdalītāju
                13. 13. If Construct izmantošana
                14. 14. If-Else Constructs izmantošana
                15. 15. Iestatiet lauka platumu
                16. 16. Iestatiet ierakstu atdalītāju
                17. 17. Drukas vides mainīgie
                18. 18. Izlaist dažus laukus no izvades
                19. 19. Noņemiet tukšās līnijas
                20. 20. Noņemiet beigu atstarpes
                21. 21. Pārbaudiet lauku skaitu katrā rindā
                22. 22. Pārbaudiet pašreizējo faila nosaukumu
                23. 23. Pārbaudiet apstrādāto ierakstu skaitu
                24. 24. Izdrukājiet ierakstu kopējo rakstzīmju skaitu
                25. 25. Izdrukājiet visas līnijas ilgāk par noteikto garumu
                26. 26. Izdrukājiet rindu, rakstzīmju un vārdu skaitu
                27. 27. Aprēķiniet vārdu biežumu
                28. 28. Pārdēvēt failus, izmantojot AWK
                29. 29. Izdrukājiet skaitļa kvadrātsakni
                30. 30. Izdrukājiet skaitļa logaritmu
                31. 31. Izdrukājiet skaitļa eksponenciālu
                32. 32. Izveidojiet nejaušus skaitļus, izmantojot AWK
                33. 33. Krāsu sastādītāja brīdinājumi sarkanā krāsā
                34. 34. Izdrukājiet failu sistēmas UUID informāciju
                35. 35. Izdrukājiet Linux kodola attēla versiju
                36. 36. Pievienojiet rindu numurus pirms rindām
                37. 37. Izdrukājiet failu pēc satura kārtošanas
                38. 38. Izdrukājiet rokasgrāmatas lapu
                39. 39. Izdrukājiet palīdzības lapu
                40. 40. Informācija par drukas versiju
              3. Beigu domas

              AWK ir spēcīga> pilnvērtīga programmēšanas valoda . AWK savu nosaukumu ieguvis no tā autoru iniciāļiem - Aho, Veinbergera un Kernighana. Komanda awk Linux un citās Unix sistēmās izsauc tulku, kas palaiž AWK skriptus. Nesenās sistēmās pastāv vairākas awk ieviešanas, piemēram, gawk (GNU awk), mawk (Minimal awk) un nawk (New awk). Apskatiet tālāk sniegtos piemērus, ja vēlaties apgūt awk.

              Izpratne par AWK programmām


              Programmas, kas rakstītas awk, sastāv no noteikumiem, kas ir vienkārši modeļu un darbību pāris. Modeļi ir sagrupēti iekavās {}, un darbības daļa tiek aktivizēta ikreiz, kad awk atrod tekstam atbilstošus tekstus. Lai gan awk tika izstrādāts vienas līnijas rakstīšanai, pieredzējuši lietotāji ar to var viegli rakstīt sarežģītus skriptus.

              awk komanda Linux

              AWK programmas ir ļoti noderīgas liela mēroga failu apstrādei. Tas identificē teksta laukus, izmantojot speciālās rakstzīmes un atdalītājus. Tā piedāvā arī augsta līmeņa programmēšanas konstrukcijas, piemēram, masīvus un cilpas. Tāpēc ir ļoti iespējams rakstīt stabilas programmas, izmantojot vienkāršu awk.

              Praktiski awk komandu piemēri Linux


              Administratori parasti izmanto awk datu iegūšanai un ziņošanai kopā ar cita veida failu manipulācijām. Zemāk mēs detalizētāk apspriedām awk. Rūpīgi izpildiet komandas un izmēģiniet tās savā terminālī, lai iegūtu pilnīgu izpratni.

              1. Izdrukājiet specifiskus laukus no teksta izvades


              Visvairāk plaši izmantotas Linux komandas parādīt savus rezultātus, izmantojot dažādus laukus. Parasti mēs izmantojam Linux izgriešanas komandu, lai no šādiem datiem iegūtu noteiktu lauku. Tomēr zemāk esošā komanda parāda, kā to izdarīt, izmantojot komandu awk.

              $ who | awk '{print $1}'

              Šī komanda parādīs tikai pirmo lauku no komandas who izvades. Tātad jūs vienkārši iegūsit visu pašlaik reģistrēto lietotāju lietotājvārdus. Šeit, $ 1 apzīmē pirmo lauku. Jums ir jāizmanto $ N ja vēlaties iegūt N-to lauku.

              2. Drukājiet vairākus laukus no teksta izvades


              Awk tulks ļauj mums izdrukāt vēlamo lauku skaitu. Tālāk sniegtajos piemēros ir parādīts, kā iegūt pirmos divus laukus no komandas who izvades.

              $ who | awk '{print $1, $2}'

              Varat arī kontrolēt izvades lauku secību. Šajā piemērā vispirms tiek parādīta otrā sleja, ko izveidojusi komanda who, un pēc tam pirmā kolonna otrajā laukā.

              $ who | awk '{print $2, $1}'

              Vienkārši atstājiet laukā parametrus ( $ N ), lai parādītu visus datus.

              3. Izmantojiet BEGIN paziņojumus


              BEGIN paziņojums ļauj lietotājiem izvadē izdrukāt zināmu informāciju. To parasti izmanto awk ģenerēto izejas datu formatēšanai. Šī paziņojuma sintakse ir parādīta zemāk.

              BEGIN { Actions} {ACTION}

              Darbības, kas veido sadaļu SĀKT, vienmēr tiek aktivizētas. Tad awk izlasa atlikušās rindas pa vienai un redz, vai kaut kas ir jādara.

              $ who | awk 'BEGIN {print 'User	From'} {print $1, $2}'

              Iepriekš minētā komanda iezīmēs divus izvades laukus, kas iegūti no komandas izvades.

              4. Izmantojiet END paziņojumus


              Varat arī izmantot paziņojumu END, lai pārliecinātos, ka noteiktas darbības vienmēr tiek veiktas jūsu darbības beigās. Vienkārši ievietojiet sadaļu END pēc galvenā darbību kopuma.

              $ who | awk 'BEGIN {print 'User	From'} {print $1, $2} END {print '--COMPLETED--'}'

              Iepriekš minētā komanda pievienos norādīto virkni izvades beigās.

              5. Meklēšana, izmantojot modeļus


              Liela daļa awk darbu ir saistīta ar modeļu saskaņošanu un regulāro izteiksmi. Kā mēs jau esam apsprieduši, awk meklē modeļus katrā ievades rindā un veic darbību tikai tad, kad tiek aktivizēta atbilstība. Mūsu iepriekšējie noteikumi sastāvēja tikai no darbībām. Zemāk mēs esam ilustrējuši modeļu atbilstības pamatus, izmantojot Linux komandu awk.

              $ who | awk '/mary/ {print}'

              Šī komanda redzēs, vai lietotājs Marija pašlaik ir pieteicies vai nē. Ja tiks atrasta atbilstība, tā izvadīs visu rindu.

              6. Izņemiet informāciju no failiem


              Komanda awk ļoti labi darbojas ar failiem, un to var izmantot sarežģītiem failu apstrādes uzdevumiem. Šī komanda parāda, kā awk apstrādā failus.

              $ awk '/hello/ {print}' /usr/share/dict/american-english

              Šī komanda meklē modeli “sveiki” amerikāņu-angļu vārdnīcas failā. Tas ir pieejams lielākajā daļā Linux balstītas izplatīšanas . Tādējādi šajā failā varat viegli izmēģināt awk programmas.

              awk modeļa meklēšana

              7. Izlasiet AWK skriptu no avota faila


              Lai gan viena līnija programmu rakstīšana ir noderīga, jūs varat arī rakstīt lielas programmas, pilnībā izmantojot awk. Jūs vēlaties tos saglabāt un palaist programmu, izmantojot avota failu.

              $ awk -f script-file $ awk --file script-file

              The -f vai - fails opcija ļauj mums norādīt programmas failu. Tomēr jums nav jāizmanto pēdiņas (‘’) skripta faila iekšienē, jo Linux apvalks šādā veidā neskaidros programmas kodu.

              8. Iestatiet ievades lauka atdalītāju


              Lauku atdalītājs ir norobežotājs, kas sadala ievades ierakstu. Mēs varam viegli norādīt lauku atdalītājus awk, izmantojot -F vai -lauku atdalītājs iespēja. Pārbaudiet zemāk esošās komandas, lai redzētu, kā tas darbojas.

              $ echo 'This-is-a-simple-example' | awk -F - ' {print $1} ' $ echo 'This-is-a-simple-example' | awk --field-separator - ' {print $1} '

              Tas darbojas vienādi, ja Linux izmanto skripta failus, nevis vienu līniju awk komandu.

              9. Drukāt informāciju, pamatojoties uz stāvokli


              Esam apsprieduši Linux izgriešanas komanda iepriekšējā ceļvedī. Tagad mēs parādīsim, kā iegūt informāciju, izmantojot awk, tikai tad, ja ir noteikti kritēriji. Mēs izmantosim to pašu testa failu, ko izmantojām šajā rokasgrāmatā. Tāpēc dodieties tur un izveidojiet kopiju test.txt failu.

              $ awk '$4 > 50' test.txt

              Šī komanda izdrukās visas valstis no faila test.txt, kurā ir vairāk nekā 50 miljoni iedzīvotāju.

              10. Drukājiet informāciju, salīdzinot regulārās izteiksmes


              Šī awk komanda pārbauda, ​​vai jebkuras rindas trešais lauks satur rakstu “Lira”, un, ja tiek atrasta atbilstība, izdrukā visu rindu. Mēs atkal izmantojam failu test.txt, ko izmanto, lai ilustrētu Linux izgriešanas komanda . Tāpēc pirms turpināt, pārliecinieties, vai esat ieguvis šo failu.

              $ awk '$3 ~ /Lira/' test.txt

              Ja vēlaties, varat drukāt tikai noteiktu daļu no jebkuras spēles.

              11. Saskaitiet kopējo ievadīto rindu skaitu


              Komandai awk ir daudz speciālu mainīgo, kas ļauj mums viegli veikt daudzas uzlabotas lietas. Viens no šādiem mainīgajiem ir NR, kas satur pašreizējo rindas numuru.

              $ awk 'END {print NR} ' test.txt

              Šī komanda izvadīs, cik rindu ir mūsu failā test.txt. Tas vispirms atkārtojas pa katru rindu, un, kad tas ir sasniedzis END, tas izdrukās NR vērtību, kas šajā gadījumā satur kopējo rindu skaitu.

              12. Iestatiet izvades lauka atdalītāju


              Iepriekš mēs esam parādījuši, kā atlasīt ievades lauku atdalītājus, izmantojot -F vai -lauku atdalītājs iespēja. Komanda awk arī ļauj mums norādīt izvades lauku atdalītāju. Zemāk redzamais piemērs to parāda, izmantojot praktisku piemēru.

              $ date | awk 'OFS='-' {print$2,$3,$6}'

              Šī komanda izdrukā pašreizējo datumu, izmantojot formātu dd-mm-yy. Palaidiet datuma programmu bez awk, lai redzētu, kā izskatās noklusējuma izvade.

              13. If Construct izmantošana


              Tāpat kā citi populāras programmēšanas valodas , awk arī nodrošina lietotājus ar if-else konstrukcijām. Ja paziņojumam awk ir šāda sintakse.

              if (expression) { first_action second_action }

              Atbilstošās darbības tiek veiktas tikai tad, ja nosacījuma izteiksme ir patiesa. Zemāk redzamais piemērs to parāda, izmantojot mūsu atsauces failu test.txt .

              $ awk '{ if ($4>100) print }' test.txt

              Jums nav stingri jāuztur ievilkums.

              14. If-Else Constructs izmantošana


              Izmantojot zemāk esošo sintaksi, varat izveidot noderīgas trepes. Tie ir noderīgi, izstrādājot sarežģītus awk skriptus, kas attiecas uz dinamiskiem datiem.

              if (expression) first_action else second_action
              $ awk '{ if ($4>100) print; else print }' test.txt

              Iepriekš minētā komanda drukās visu atsauces failu, jo ceturtais lauks katrai rindai nav lielāks par 100.

              15. Iestatiet lauka platumu


              Dažreiz ievades dati ir diezgan netīri, un lietotājiem var būt grūti tos vizualizēt savos pārskatos. Par laimi, awk nodrošina jaudīgu iebūvētu mainīgo FIELDWIDTHS, kas ļauj mums definēt ar atstarpēm atdalītu platumu sarakstu.

              $ echo 5675784464657 | awk 'BEGIN {FIELDWIDTHS= '3 4 5'} {print $1, $2, $3}'

              Tas ir ļoti noderīgi, analizējot izkliedētos datus, jo mēs varam kontrolēt izvades lauka platumu tieši tā, kā vēlamies.

              lauka platums awk

              16. Iestatiet ierakstu atdalītāju


              RS vai ierakstu atdalītājs ir vēl viens iebūvēts mainīgais, kas ļauj mums norādīt, kā ieraksti tiek atdalīti. Vispirms izveidosim failu, kas parādīs šī awk mainīgā darbību.

              $ cat new.txt Melinda James 23 New Hampshire (222) 466-1234 Daniel James 99 Phonenix Road (322) 677-3412
              $ awk 'BEGIN{FS='
              '; RS=''} {print $1,$3}' new.txt

              Šī komanda parsēs dokumentu un izslēgs abu personu vārdu un adresi.

              17. Drukas vides mainīgie


              Komanda awk Linux ļauj mums viegli izdrukāt vides mainīgos, izmantojot mainīgo ENVIRON. Zemāk esošā komanda parāda, kā to izmantot, lai izdrukātu mainīgā PATH saturu.

              $ awk 'BEGIN{ print ENVIRON['PATH'] }'

              Varat izdrukāt jebkura vides mainīgā saturu, aizstājot mainīgā ENVIRON argumentu. Zemāk esošā komanda izdrukā vides mainīgā HOME vērtību.

              $ awk 'BEGIN{ print ENVIRON['HOME'] }'

              18. Izlaist dažus laukus no izvades


              Komanda awk ļauj mums izlaist noteiktas rindas no mūsu izvades. Šī komanda to parādīs, izmantojot mūsu atsauces failu test.txt .

              $ awk -F':' '{$2=''; print}' test.txt

              Šī komanda izlaidīs mūsu faila otro kolonnu, kurā ir katras valsts galvaspilsētas nosaukums. Varat arī izlaist vairākus laukus, kā parādīts nākamajā komandā.

              $ awk -F':' '{$2='';$3='';print}' test.txt

              19. Noņemiet tukšās līnijas


              Dažreiz dati var saturēt pārāk daudz tukšu rindu. Jūs varat izmantot komandu awk, lai diezgan viegli noņemtu tukšās rindas. Pārbaudiet nākamo komandu, lai redzētu, kā tas darbojas praksē.

              $ awk '/^[ 	]*$/{next}{print}' new.txt

              Mēs esam noņēmuši visas tukšās rindas no faila new.txt, izmantojot vienkāršu regulāro izteiksmi un iebūvēto awk, ko sauc par nākamo.

              20. Noņemiet beigu atstarpes


              Daudzu Linux komandu izvade satur beigu atstarpes. Mēs varam izmantot komandu awk operētājsistēmā Linux, lai noņemtu tādas atstarpes kā atstarpes un cilnes. Pārbaudiet zemāk esošo komandu, lai uzzinātu, kā risināt šādas problēmas, izmantojot awk.

              $ awk '{sub(/[ 	]*$/, '');print}' new.txt test.txt

              Pievienojiet mūsu atsauces failiem dažas atstarpes un pārbaudiet, vai awk tās ir veiksmīgi noņemtas. Tas manā mašīnā to izdarīja veiksmīgi.

              21. Pārbaudiet lauku skaitu katrā rindā


              Mēs varam viegli pārbaudīt, cik lauku ir rindā, izmantojot vienkāršu awk one-liner. Ir daudz veidu, kā to izdarīt, taču šim uzdevumam mēs izmantosim dažus no awk iebūvētajiem mainīgajiem. Mainīgais NR dod mums rindas numuru, un NF mainīgais nodrošina lauku skaitu.

              $ awk '{print NR,'-->',NF}' test.txt

              Tagad mēs varam apstiprināt, cik daudz lauku ir katrā rindā test.txt dokuments. Tā kā katra šī faila rinda satur 5 laukus, mēs esam pārliecināti, ka komanda darbojas, kā paredzēts.

              22. Pārbaudiet pašreizējo faila nosaukumu


              Awk mainīgais FILENAME tiek izmantots pašreizējā ievades faila nosaukuma pārbaudei. Mēs demonstrējam, kā tas darbojas, izmantojot vienkāršu piemēru. Tomēr tas var būt noderīgi situācijās, kad faila nosaukums nav skaidri zināms vai ja ir vairāk nekā viens ievades fails.

              $ awk '{print FILENAME}' test.txt $ awk '{print FILENAME}' test.txt new.txt

              Iepriekš minētās komandas izdrukā faila nosaukumu awk, ar kuru strādā, katru reizi, kad tiek apstrādāta jauna ievades failu rinda.

              23. Pārbaudiet apstrādāto ierakstu skaitu


              Šis piemērs parādīs, kā mēs varam pārbaudīt ierakstu skaitu, ko apstrādā komanda awk. Tā kā liels skaits Linux sistēmas administratoru pārskatu ģenerēšanai izmanto awk, tas viņiem ir ļoti noderīgi.

              $ awk '{print 'Processing Record - ',NR;} END {print '
              Total Records Processed:', NR;}' test.txt

              Es bieži izmantoju šo awk fragmentu, lai iegūtu skaidru pārskatu par savām darbībām. Jūs varat to viegli pielāgot, lai pielāgotos jaunām idejām vai darbībām.

              apstrādāto rindu skaits awk

              24. Izdrukājiet ierakstu kopējo rakstzīmju skaitu


              Awk valoda nodrošina ērtu funkciju garums (), kas norāda, cik rakstzīmju ir ierakstā. Tas ir ļoti noderīgi vairākos scenārijos. Ātri apskatiet šo piemēru, lai redzētu, kā tas darbojas.

              $ echo 'A random text string...' | awk '{ print length($0); }'
              $ awk '{ print length($0); }' /etc/passwd

              Iepriekš minētā komanda drukās kopējo rakstzīmju skaitu katrā ievades virknes vai faila rindā.

              25. Izdrukājiet visas līnijas ilgāk par noteikto garumu


              Iepriekšminētajai komandai mēs varam pievienot dažus nosacījumus un likt tai drukāt tikai tās rindas, kas ir lielākas par iepriekš noteiktu garumu. Tas ir noderīgi, ja jums jau ir priekšstats par konkrēta ieraksta garumu.

              $ echo 'A random text string...' | awk 'length($0) > 10'
              $ awk '{ length($0) > 5; }' /etc/passwd

              Jūs varat izmantot vairāk iespēju un/vai argumentu, lai pielāgotu komandu, pamatojoties uz jūsu prasībām.

              26. Izdrukājiet rindu, rakstzīmju un vārdu skaitu


              Šī Linux komanda awk izdrukā rindu, rakstzīmju un vārdu skaitu noteiktā ievadē. Šīs darbības veikšanai tiek izmantots mainīgais NR, kā arī dažas pamata aritmētikas.

              $ echo 'This is a input line...' | awk '{ w += NF; c += length + 1 } END { print NR, w, c }'

              Tas parāda, ka ievades virknē ir 1 rinda, 5 vārdi un tieši 24 rakstzīmes.

              27. Aprēķiniet vārdu biežumu


              Mēs varam apvienot asociatīvos masīvus un for ciklu in awk, lai aprēķinātu dokumenta vārdu biežumu. Šī komanda var šķist nedaudz sarežģīta, taču tā ir diezgan vienkārša, kad skaidri saprotat pamatkonstrukcijas.

              $ awk 'BEGIN {FS='[^a-zA-Z]+' } { for (i=1; i<=NF; i++) words[tolower($i)]++ } END { for (i in words) print i, words[i] }' test.txt

              Ja jums ir problēmas ar vienas līnijas fragmentu, nokopējiet šo kodu jaunā failā un palaidiet to, izmantojot avotu.

              $ cat > frequency.awk BEGIN { FS='[^a-zA-Z]+' } { for (i=1; i<=NF; i++) words[tolower($i)]++ } END { for (i in words) print i, words[i] }

              Pēc tam palaidiet to, izmantojot -f iespēja.

              $ awk -f frequency.awk test.txt

              28. Pārdēvēt failus, izmantojot AWK


              Komandu awk var izmantot, lai pārdēvētu visus failus, kas atbilst noteiktiem kritērijiem. Šī komanda parāda, kā izmantot awk, lai pārdēvētu visus direktorijā esošos .MP3 failus uz .mp3 failiem.

              $ touch {a,b,c,d,e}.MP3 $ ls *.MP3 | awk '{ printf('mv '%s' '%s'
              ', $0, tolower($0)) }' $ ls *.MP3 | awk '{ printf('mv '%s' '%s'
              ', $0, tolower($0)) }' | sh

              Pirmkārt, mēs izveidojām dažus demonstrācijas failus ar paplašinājumu .MP3. Otrā komanda parāda lietotājam, kas notiek, ja pārdēvēšana ir veiksmīga. Visbeidzot, pēdējā komanda pārdēvē operāciju, izmantojot Linux komandu mv.

              29. Izdrukājiet skaitļa kvadrātsakni


              AWK piedāvā vairākas iebūvētas funkcijas ciparu manipulēšanai. Viens no tiem ir funkcija sqrt (). Tā ir C līdzīga funkcija, kas atgriež dotā skaitļa kvadrātsakni. Ātri apskatiet nākamo piemēru, lai redzētu, kā tas darbojas kopumā.

              $ awk 'BEGIN{ print sqrt(36); print sqrt(0); print sqrt(-16) }'

              Tā kā jūs nevarat noteikt negatīvā skaitļa kvadrātsakni, izvadē sqrt (-12) vietā tiks parādīts īpašs atslēgvārds ar nosaukumu “nan”.

              sqrt funkcija Linux awk komandā

              30. Izdrukājiet skaitļa logaritmu


              Funkcijas žurnāls awk () nodrošina skaitļa dabisko logaritmu. Tomēr tas darbosies tikai ar pozitīviem skaitļiem, tāpēc ņemiet vērā lietotāju ievades apstiprināšanu. Pretējā gadījumā kāds var pārtraukt jūsu awk programmas un iegūt priviliģētu piekļuvi sistēmas resursiem.

              $ awk 'BEGIN{ print log(36); print log(0); print log(-16) }'

              Jums vajadzētu redzēt logaritmu 36 un pārbaudīt, vai logaritms 0 ir bezgalība, un negatīvās vērtības žurnāls ir “Nav skaitlis” vai nan.

              31. Izdrukājiet skaitļa eksponenciālu


              Eksponenciālais os a skaitlis n nodrošina e^n vērtību. To parasti izmanto awk skriptos, kas nodarbojas ar lieliem cipariem vai sarežģītu aritmētisko loģiku. Mēs varam ģenerēt skaitļa eksponenciālu, izmantojot iebūvēto awk funkciju exp ().

              $ awk 'BEGIN{ print exp(30); print log(0); print exp(-16) }'

              Tomēr awk nevar aprēķināt eksponenciālu lieliem skaitļiem. Jums vajadzētu veikt šādus aprēķinus, izmantojot zema līmeņa programmēšanas valodas, piemēram, C, un norādīt vērtību saviem awk skriptiem.

              32. Izveidojiet nejaušus skaitļus, izmantojot AWK


              Mēs varam izmantot komandu awk Linux, lai ģenerētu nejaušus skaitļus. Šie skaitļi būs diapazonā no 0 līdz 1, bet nekad 0 vai 1. Jūs varat reizināt fiksētu vērtību ar iegūto skaitli, lai iegūtu lielāku izlases vērtību.

              $ awk 'BEGIN{ print rand(); print rand()*99 }'

              Funkcijai rand () nav nepieciešami argumenti. Turklāt šīs funkcijas radītie skaitļi nav precīzi nejauši, bet drīzāk pseidogadījumi. Turklāt ir diezgan viegli paredzēt šos skaitļus no skriešanas uz skrējienu. Tāpēc jums nevajadzētu paļauties uz tiem, veicot sensitīvus aprēķinus.

              33. Krāsu sastādītāja brīdinājumi sarkanā krāsā


              Mūsdienu Linux kompilatori brīdinās, ja jūsu kods nesaglabā valodas standartus vai ja tajā ir kļūdas, kas neaptur programmas izpildi. Šī komanda awk sarkanā krāsā drukās kompilatora ģenerētās brīdinājuma līnijas.

              $ gcc -Wall main.c |& awk '/: warning:/{print 'x1B[01;31m' $0 'x1B[m';next;}{print}'

              Šī komanda ir noderīga, ja vēlaties precīzi noteikt kompilatora brīdinājumus. Šo komandu varat izmantot ar jebkuru kompilatoru, izņemot gcc, vienkārši mainiet modeli /: brīdinājums: /, lai atspoguļotu konkrēto kompilatoru.

              34. Izdrukājiet failu sistēmas UUID informāciju


              UUID vai Universāli unikāls identifikators ir skaitlis, ko var izmantot, lai identificētu tādus resursus kā Linux failu sistēma . Mēs varam vienkārši izdrukāt mūsu failu sistēmas UUID informāciju, izmantojot šādu Linux awk komandu.

              $ awk '/UUID/ {print $0}' /etc/fstab

              Šī komanda meklē tekstu UUID /etc/fstab failu, izmantojot awk modeļus. Tas atgriež komentāru no faila, kas mūs neinteresē. Zemāk esošā komanda nodrošinās, ka mēs saņemam tikai tās rindas, kas sākas ar UUID.

              $ awk '/^UUID/ {print $1}' /etc/fstab

              Tas ierobežo izvadi līdz pirmajam laukam. Tātad mēs iegūstam tikai UUID numurus.

              35. Izdrukājiet Linux kodola attēla versiju


              Tiek izmantoti dažādi Linux kodola attēli dažādi Linux izplatījumi . Mēs varam viegli izdrukāt precīzu kodola attēlu, uz kura balstās mūsu sistēma, izmantojot awk. Pārbaudiet šo komandu, lai redzētu, kā tas darbojas kopumā.

              $ uname -a | awk '{print $3}'

              Mēs vispirms esam izdevuši komandu uname ar -uz opciju un pēc tam pārsūtīja šos datus uz awk. Tad mēs esam ieguvuši kodola attēla versijas informāciju, izmantojot awk.

              36. Pievienojiet rindu numurus pirms rindām


              Lietotāji diezgan bieži var saskarties ar teksta failiem, kas nesatur rindu numurus. Par laimi, jūs varat viegli pievienot rindu numurus failam, izmantojot Linux komandu awk. Rūpīgi apskatiet zemāk redzamo piemēru, lai redzētu, kā tas darbojas reālajā dzīvē.

              $ awk '{ print FNR '. ' $0 ;next}{print}' test.txt

              Iepriekš minētā komanda pievienos rindas numuru pirms katras mūsu test.txt atsauces faila rindas. Lai to novērstu, tas izmanto iebūvēto awk mainīgo FNR.

              pievienojiet rindu numurus, izmantojot komandu awk

              37. Izdrukājiet failu pēc satura kārtošanas


              Mēs varam arī izmantot awk, lai izdrukātu sakārtotu visu rindu sarakstu. Šīs komandas drukā visu mūsu test.txt valstu nosaukumu sakārtotā secībā.

              $ awk -F ':' '{ print $1 }' test.txt | sort

              Nākamā komanda drukās visu lietotāju pieteikšanās vārdu no /etc/passwd failu.

              $ awk -F ':' '{ print $1 }' /etc/passwd | sort

              Jūs varat viegli mainīt kārtošanas kārtību, mainot kārtošanas komandu.

              38. Izdrukājiet rokasgrāmatas lapu


              Rokasgrāmatas lapā ir detalizēta informācija par komandu awk, kā arī visas pieejamās iespējas. Tas ir ārkārtīgi svarīgi cilvēkiem, kuri vēlas rūpīgi apgūt awk komandu.

              $ man awk

              Ja vēlaties apgūt sarežģītas awk funkcijas, tas jums ļoti palīdzēs. Iepazīstieties ar šo dokumentāciju ikreiz, kad esat saskāries ar problēmu.

              39. Izdrukājiet palīdzības lapu


              Palīdzības lapā ir apkopota informācija par visiem iespējamiem komandrindas argumentiem. Varat izsaukt palīdzības ceļvedi, lai iegūtu awk, izmantojot vienu no šīm komandām.

              $ awk -h $ awk --help

              Skatiet šo lapu, ja vēlaties ātri apskatīt visas pieejamās awk iespējas.

              40. Informācija par drukas versiju


              Versijas informācija sniedz mums informāciju par programmu veidošanu. Awk versijas lapā ir tāda informācija kā autortiesības, apkopošanas rīki utt. Šo informāciju varat skatīt, izmantojot vienu no šīm awk komandām.

              $ awk -V $ awk --version

              Beigu domas


              Komanda awk operētājsistēmā Linux ļauj mums veikt visu veidu lietas, tostarp failu apstrādi un sistēmas uzturēšanu. Tas nodrošina daudzveidīgu darbību klāstu, lai diezgan viegli tiktu galā ar ikdienas skaitļošanas uzdevumiem. Mūsu redaktori ir apkopojuši šo rokasgrāmatu ar 40 noderīgām awk komandām, kuras var izmantot teksta manipulācijām vai administrēšanai. Tā kā AWK pati par sevi ir pilnvērtīga programmēšanas valoda, ir vairāki veidi, kā veikt vienu un to pašu darbu. Tāpēc nebrīnieties, kāpēc mēs dažas lietas darām citādi. Jūs vienmēr varat apkopot savas receptes, pamatojoties uz savu prasmju kopumu un pieredzi. Ja jums ir kādi jautājumi, atstājiet mums savas domas.

              • Tagi
              • Programmēšanas rīki
              • Sistēmas utilītas rīki
              Kopīgot Facebook Twitter Pinterest WhatsApp ReddIt Telegramma Viber

                7 KOMENTĀRI

                1. Ramesh 2020. gada 24. aprīlis plkst. 07:48

                  Kas ir labākais sed vai awk?

                  Atbildēt
                  • lauhub 2021. gada 6. janvāris 04:41

                    Abi ir labākie:

                    - sed ir noderīgs vienkāršiem nomaiņas/izdevuma uzdevumiem, un tam ir daži ierobežojumi sarežģītu uzdevumu programmēšanai (lai gan pieredzējuši lietotāji var darīt daudzas lietas)

                    - awk ir jābūt daudzpusīgākam, lai veiktu vienkāršus uzdevumus, bet ļauj sarežģītākām programmām izmantot sarežģītākas datu struktūras.

                    Jebkurā gadījumā viss ir atkarīgs no jūsu vajadzībām un zināšanām par šiem rīkiem

                    Atbildēt
                  • DC 2021. gada 16. jūlijs plkst. 09:17

                    Abi ir funkcionāli atšķirīgi. sed ir ierobežota funkcionalitāte. Parasti izmanto, lai atrastu un aizstātu virkņu redaktoru.
                    awk tiek izmantots datu manipulācijām un nodrošina vairāk programmēšanas funkcionalitātes

                    Atbildēt
                2. Ahmeds 2020. gada 16. aprīlis plkst. 13:24

                  Sveiki,
                  Piemēri ir lieliski, taču būtu bijis labāk, ja jūs būtu ievietojis izlaidi arī pēc piemēra.

                  Atbildēt
                  • Rubaiat Hossain 2020. gada 18. aprīlis plkst. 01:28

                    Paldies, Ahmed, ka tu paliec pie mums. Tomēr mēs baidāmies, ka katrai komandai pievienojot atsevišķus attēlus, ceļvedis būs ārkārtīgi garš, un tāpēc lietotāji, kas to lasa no maza ekrāna ierīcēm, piemēram, tālruņiem/planšetdatoriem, var saskarties ar nevēlamu ritināšanas pieredzi.

                    Turklāt mēs mudinām mūsu lasītājus uzlabot šīs awk komandas Linux, atrodoties ceļā, un izmēģināt tās no pirmavotiem. Tādā veidā jūs tos apgūsit ātrāk.

                    Atbildēt
                3. Stefans 2020. gada 6. aprīlī plkst. 10:54

                  Lieliski piemēri. Paldies par šo

                  Atbildēt
                4. Kārans Grovers 2020. gada 2. aprīlī plkst. 17:29

                  jauki awk piemēri

                  Atbildēt

                ATSTĀJ ATBILDI Atcelt atbildi

                Komentārs: Lūdzu, ievadiet savu komentāru! Vārds:* Lūdzu, ievadiet savu vārdu šeit E -pasts:* Jūs esat ievadījis nepareizu e -pasta adresi! Lūdzu, šeit ievadiet savu e -pasta adresi Vietne:

                Saglabājiet manu vārdu, e -pastu un vietni šajā pārlūkprogrammā, lai nākamreiz komentētu.

                spot_img

                Jaunākā ziņa

                Android

                10 labākās sejas maiņas lietotnes Android un iOS ierīcēm

                Windows OS

                Kā ieplānot Windows 10, lai automātiski iztukšotu atkritni

                Android

                10 labākās rēķinu izrakstīšanas lietotnes Android ierīcei, lai ātri samaksātu

                Windows OS

                10 labākās GPU etalona programmatūras jūsu datoram

                Vajag izlasīt

                Linux

                Kā instalēt un konfigurēt XAMPP operētājsistēmā Ubuntu Linux

                Linux

                Ubuntu Communitheme - Jauna Ubuntu kopienas tēma

                Linux

                Kā instalēt programmatūru no avota koda savā Linux sistēmā

                Linux

                RedNotebook - mūsdienīga un bezmaksas dienasgrāmatu un žurnālu programmatūra Linux

                Saistītā ziņa

                Kā instalēt un iestatīt kabīnes tīmekļa konsoli Linux sistēmā

                Kā instalēt un iestatīt Yii PHP Framework Ubuntu Linux

                Kā labot W: dažiem indeksa failiem neizdevās lejupielādēt kļūdu Ubuntu Linux

                Kā instalēt un iestatīt 1Password Linux darbvirsmā

                Kā instalēt jaunāko GNU Nano teksta redaktoru Linux darbvirsmā

                Kā instalēt jaunu relikvijas infrastruktūras aģentu Linux sistēmā

                , tolower(
                Mājas A-Z komandas 40 Praktiska un noderīga awk komanda Linux un BSD AutorsMehedi Hasan InA-Z komandasPiedāvātie 1271 7

                SATURS

                1. Izpratne par AWK programmām
                2. Praktiski awk komandu piemēri Linux
                  1. 1. Izdrukājiet specifiskus laukus no teksta izvades
                  2. 2. Drukājiet vairākus laukus no teksta izvades
                  3. 3. Izmantojiet BEGIN paziņojumus
                  4. 4. Izmantojiet END paziņojumus
                  5. 5. Meklēšana, izmantojot modeļus
                  6. 6. Izņemiet informāciju no failiem
                  7. 7. Izlasiet AWK skriptu no avota faila
                  8. 8. Iestatiet ievades lauka atdalītāju
                  9. 9. Drukāt informāciju, pamatojoties uz stāvokli
                  10. 10. Drukājiet informāciju, salīdzinot regulārās izteiksmes
                  11. 11. Saskaitiet kopējo ievadīto rindu skaitu
                  12. 12. Iestatiet izvades lauka atdalītāju
                  13. 13. If Construct izmantošana
                  14. 14. If-Else Constructs izmantošana
                  15. 15. Iestatiet lauka platumu
                  16. 16. Iestatiet ierakstu atdalītāju
                  17. 17. Drukas vides mainīgie
                  18. 18. Izlaist dažus laukus no izvades
                  19. 19. Noņemiet tukšās līnijas
                  20. 20. Noņemiet beigu atstarpes
                  21. 21. Pārbaudiet lauku skaitu katrā rindā
                  22. 22. Pārbaudiet pašreizējo faila nosaukumu
                  23. 23. Pārbaudiet apstrādāto ierakstu skaitu
                  24. 24. Izdrukājiet ierakstu kopējo rakstzīmju skaitu
                  25. 25. Izdrukājiet visas līnijas ilgāk par noteikto garumu
                  26. 26. Izdrukājiet rindu, rakstzīmju un vārdu skaitu
                  27. 27. Aprēķiniet vārdu biežumu
                  28. 28. Pārdēvēt failus, izmantojot AWK
                  29. 29. Izdrukājiet skaitļa kvadrātsakni
                  30. 30. Izdrukājiet skaitļa logaritmu
                  31. 31. Izdrukājiet skaitļa eksponenciālu
                  32. 32. Izveidojiet nejaušus skaitļus, izmantojot AWK
                  33. 33. Krāsu sastādītāja brīdinājumi sarkanā krāsā
                  34. 34. Izdrukājiet failu sistēmas UUID informāciju
                  35. 35. Izdrukājiet Linux kodola attēla versiju
                  36. 36. Pievienojiet rindu numurus pirms rindām
                  37. 37. Izdrukājiet failu pēc satura kārtošanas
                  38. 38. Izdrukājiet rokasgrāmatas lapu
                  39. 39. Izdrukājiet palīdzības lapu
                  40. 40. Informācija par drukas versiju
                3. Beigu domas

                AWK ir spēcīga> pilnvērtīga programmēšanas valoda . AWK savu nosaukumu ieguvis no tā autoru iniciāļiem - Aho, Veinbergera un Kernighana. Komanda awk Linux un citās Unix sistēmās izsauc tulku, kas palaiž AWK skriptus. Nesenās sistēmās pastāv vairākas awk ieviešanas, piemēram, gawk (GNU awk), mawk (Minimal awk) un nawk (New awk). Apskatiet tālāk sniegtos piemērus, ja vēlaties apgūt awk.

                Izpratne par AWK programmām


                Programmas, kas rakstītas awk, sastāv no noteikumiem, kas ir vienkārši modeļu un darbību pāris. Modeļi ir sagrupēti iekavās {}, un darbības daļa tiek aktivizēta ikreiz, kad awk atrod tekstam atbilstošus tekstus. Lai gan awk tika izstrādāts vienas līnijas rakstīšanai, pieredzējuši lietotāji ar to var viegli rakstīt sarežģītus skriptus.

                awk komanda Linux

                AWK programmas ir ļoti noderīgas liela mēroga failu apstrādei. Tas identificē teksta laukus, izmantojot speciālās rakstzīmes un atdalītājus. Tā piedāvā arī augsta līmeņa programmēšanas konstrukcijas, piemēram, masīvus un cilpas. Tāpēc ir ļoti iespējams rakstīt stabilas programmas, izmantojot vienkāršu awk.

                Praktiski awk komandu piemēri Linux


                Administratori parasti izmanto awk datu iegūšanai un ziņošanai kopā ar cita veida failu manipulācijām. Zemāk mēs detalizētāk apspriedām awk. Rūpīgi izpildiet komandas un izmēģiniet tās savā terminālī, lai iegūtu pilnīgu izpratni.

                1. Izdrukājiet specifiskus laukus no teksta izvades


                Visvairāk plaši izmantotas Linux komandas parādīt savus rezultātus, izmantojot dažādus laukus. Parasti mēs izmantojam Linux izgriešanas komandu, lai no šādiem datiem iegūtu noteiktu lauku. Tomēr zemāk esošā komanda parāda, kā to izdarīt, izmantojot komandu awk.

                $ who | awk '{print $1}'

                Šī komanda parādīs tikai pirmo lauku no komandas who izvades. Tātad jūs vienkārši iegūsit visu pašlaik reģistrēto lietotāju lietotājvārdus. Šeit, $ 1 apzīmē pirmo lauku. Jums ir jāizmanto $ N ja vēlaties iegūt N-to lauku.

                2. Drukājiet vairākus laukus no teksta izvades


                Awk tulks ļauj mums izdrukāt vēlamo lauku skaitu. Tālāk sniegtajos piemēros ir parādīts, kā iegūt pirmos divus laukus no komandas who izvades.

                $ who | awk '{print $1, $2}'

                Varat arī kontrolēt izvades lauku secību. Šajā piemērā vispirms tiek parādīta otrā sleja, ko izveidojusi komanda who, un pēc tam pirmā kolonna otrajā laukā.

                $ who | awk '{print $2, $1}'

                Vienkārši atstājiet laukā parametrus ( $ N ), lai parādītu visus datus.

                3. Izmantojiet BEGIN paziņojumus


                BEGIN paziņojums ļauj lietotājiem izvadē izdrukāt zināmu informāciju. To parasti izmanto awk ģenerēto izejas datu formatēšanai. Šī paziņojuma sintakse ir parādīta zemāk.

                BEGIN { Actions} {ACTION}

                Darbības, kas veido sadaļu SĀKT, vienmēr tiek aktivizētas. Tad awk izlasa atlikušās rindas pa vienai un redz, vai kaut kas ir jādara.

                $ who | awk 'BEGIN {print 'User	From'} {print $1, $2}'

                Iepriekš minētā komanda iezīmēs divus izvades laukus, kas iegūti no komandas izvades.

                4. Izmantojiet END paziņojumus


                Varat arī izmantot paziņojumu END, lai pārliecinātos, ka noteiktas darbības vienmēr tiek veiktas jūsu darbības beigās. Vienkārši ievietojiet sadaļu END pēc galvenā darbību kopuma.

                $ who | awk 'BEGIN {print 'User	From'} {print $1, $2} END {print '--COMPLETED--'}'

                Iepriekš minētā komanda pievienos norādīto virkni izvades beigās.

                5. Meklēšana, izmantojot modeļus


                Liela daļa awk darbu ir saistīta ar modeļu saskaņošanu un regulāro izteiksmi. Kā mēs jau esam apsprieduši, awk meklē modeļus katrā ievades rindā un veic darbību tikai tad, kad tiek aktivizēta atbilstība. Mūsu iepriekšējie noteikumi sastāvēja tikai no darbībām. Zemāk mēs esam ilustrējuši modeļu atbilstības pamatus, izmantojot Linux komandu awk.

                $ who | awk '/mary/ {print}'

                Šī komanda redzēs, vai lietotājs Marija pašlaik ir pieteicies vai nē. Ja tiks atrasta atbilstība, tā izvadīs visu rindu.

                6. Izņemiet informāciju no failiem


                Komanda awk ļoti labi darbojas ar failiem, un to var izmantot sarežģītiem failu apstrādes uzdevumiem. Šī komanda parāda, kā awk apstrādā failus.

                $ awk '/hello/ {print}' /usr/share/dict/american-english

                Šī komanda meklē modeli “sveiki” amerikāņu-angļu vārdnīcas failā. Tas ir pieejams lielākajā daļā Linux balstītas izplatīšanas . Tādējādi šajā failā varat viegli izmēģināt awk programmas.

                awk modeļa meklēšana

                7. Izlasiet AWK skriptu no avota faila


                Lai gan viena līnija programmu rakstīšana ir noderīga, jūs varat arī rakstīt lielas programmas, pilnībā izmantojot awk. Jūs vēlaties tos saglabāt un palaist programmu, izmantojot avota failu.

                $ awk -f script-file $ awk --file script-file

                The -f vai - fails opcija ļauj mums norādīt programmas failu. Tomēr jums nav jāizmanto pēdiņas (‘’) skripta faila iekšienē, jo Linux apvalks šādā veidā neskaidros programmas kodu.

                8. Iestatiet ievades lauka atdalītāju


                Lauku atdalītājs ir norobežotājs, kas sadala ievades ierakstu. Mēs varam viegli norādīt lauku atdalītājus awk, izmantojot -F vai -lauku atdalītājs iespēja. Pārbaudiet zemāk esošās komandas, lai redzētu, kā tas darbojas.

                $ echo 'This-is-a-simple-example' | awk -F - ' {print $1} ' $ echo 'This-is-a-simple-example' | awk --field-separator - ' {print $1} '

                Tas darbojas vienādi, ja Linux izmanto skripta failus, nevis vienu līniju awk komandu.

                9. Drukāt informāciju, pamatojoties uz stāvokli


                Esam apsprieduši Linux izgriešanas komanda iepriekšējā ceļvedī. Tagad mēs parādīsim, kā iegūt informāciju, izmantojot awk, tikai tad, ja ir noteikti kritēriji. Mēs izmantosim to pašu testa failu, ko izmantojām šajā rokasgrāmatā. Tāpēc dodieties tur un izveidojiet kopiju test.txt failu.

                $ awk '$4 > 50' test.txt

                Šī komanda izdrukās visas valstis no faila test.txt, kurā ir vairāk nekā 50 miljoni iedzīvotāju.

                10. Drukājiet informāciju, salīdzinot regulārās izteiksmes


                Šī awk komanda pārbauda, ​​vai jebkuras rindas trešais lauks satur rakstu “Lira”, un, ja tiek atrasta atbilstība, izdrukā visu rindu. Mēs atkal izmantojam failu test.txt, ko izmanto, lai ilustrētu Linux izgriešanas komanda . Tāpēc pirms turpināt, pārliecinieties, vai esat ieguvis šo failu.

                $ awk '$3 ~ /Lira/' test.txt

                Ja vēlaties, varat drukāt tikai noteiktu daļu no jebkuras spēles.

                11. Saskaitiet kopējo ievadīto rindu skaitu


                Komandai awk ir daudz speciālu mainīgo, kas ļauj mums viegli veikt daudzas uzlabotas lietas. Viens no šādiem mainīgajiem ir NR, kas satur pašreizējo rindas numuru.

                $ awk 'END {print NR} ' test.txt

                Šī komanda izvadīs, cik rindu ir mūsu failā test.txt. Tas vispirms atkārtojas pa katru rindu, un, kad tas ir sasniedzis END, tas izdrukās NR vērtību, kas šajā gadījumā satur kopējo rindu skaitu.

                12. Iestatiet izvades lauka atdalītāju


                Iepriekš mēs esam parādījuši, kā atlasīt ievades lauku atdalītājus, izmantojot -F vai -lauku atdalītājs iespēja. Komanda awk arī ļauj mums norādīt izvades lauku atdalītāju. Zemāk redzamais piemērs to parāda, izmantojot praktisku piemēru.

                $ date | awk 'OFS='-' {print$2,$3,$6}'

                Šī komanda izdrukā pašreizējo datumu, izmantojot formātu dd-mm-yy. Palaidiet datuma programmu bez awk, lai redzētu, kā izskatās noklusējuma izvade.

                13. If Construct izmantošana


                Tāpat kā citi populāras programmēšanas valodas , awk arī nodrošina lietotājus ar if-else konstrukcijām. Ja paziņojumam awk ir šāda sintakse.

                if (expression) { first_action second_action }

                Atbilstošās darbības tiek veiktas tikai tad, ja nosacījuma izteiksme ir patiesa. Zemāk redzamais piemērs to parāda, izmantojot mūsu atsauces failu test.txt .

                $ awk '{ if ($4>100) print }' test.txt

                Jums nav stingri jāuztur ievilkums.

                14. If-Else Constructs izmantošana


                Izmantojot zemāk esošo sintaksi, varat izveidot noderīgas trepes. Tie ir noderīgi, izstrādājot sarežģītus awk skriptus, kas attiecas uz dinamiskiem datiem.

                if (expression) first_action else second_action
                $ awk '{ if ($4>100) print; else print }' test.txt

                Iepriekš minētā komanda drukās visu atsauces failu, jo ceturtais lauks katrai rindai nav lielāks par 100.

                15. Iestatiet lauka platumu


                Dažreiz ievades dati ir diezgan netīri, un lietotājiem var būt grūti tos vizualizēt savos pārskatos. Par laimi, awk nodrošina jaudīgu iebūvētu mainīgo FIELDWIDTHS, kas ļauj mums definēt ar atstarpēm atdalītu platumu sarakstu.

                $ echo 5675784464657 | awk 'BEGIN {FIELDWIDTHS= '3 4 5'} {print $1, $2, $3}'

                Tas ir ļoti noderīgi, analizējot izkliedētos datus, jo mēs varam kontrolēt izvades lauka platumu tieši tā, kā vēlamies.

                lauka platums awk

                16. Iestatiet ierakstu atdalītāju


                RS vai ierakstu atdalītājs ir vēl viens iebūvēts mainīgais, kas ļauj mums norādīt, kā ieraksti tiek atdalīti. Vispirms izveidosim failu, kas parādīs šī awk mainīgā darbību.

                $ cat new.txt Melinda James 23 New Hampshire (222) 466-1234 Daniel James 99 Phonenix Road (322) 677-3412
                $ awk 'BEGIN{FS='
                '; RS=''} {print $1,$3}' new.txt

                Šī komanda parsēs dokumentu un izslēgs abu personu vārdu un adresi.

                17. Drukas vides mainīgie


                Komanda awk Linux ļauj mums viegli izdrukāt vides mainīgos, izmantojot mainīgo ENVIRON. Zemāk esošā komanda parāda, kā to izmantot, lai izdrukātu mainīgā PATH saturu.

                $ awk 'BEGIN{ print ENVIRON['PATH'] }'

                Varat izdrukāt jebkura vides mainīgā saturu, aizstājot mainīgā ENVIRON argumentu. Zemāk esošā komanda izdrukā vides mainīgā HOME vērtību.

                $ awk 'BEGIN{ print ENVIRON['HOME'] }'

                18. Izlaist dažus laukus no izvades


                Komanda awk ļauj mums izlaist noteiktas rindas no mūsu izvades. Šī komanda to parādīs, izmantojot mūsu atsauces failu test.txt .

                $ awk -F':' '{$2=''; print}' test.txt

                Šī komanda izlaidīs mūsu faila otro kolonnu, kurā ir katras valsts galvaspilsētas nosaukums. Varat arī izlaist vairākus laukus, kā parādīts nākamajā komandā.

                $ awk -F':' '{$2='';$3='';print}' test.txt

                19. Noņemiet tukšās līnijas


                Dažreiz dati var saturēt pārāk daudz tukšu rindu. Jūs varat izmantot komandu awk, lai diezgan viegli noņemtu tukšās rindas. Pārbaudiet nākamo komandu, lai redzētu, kā tas darbojas praksē.

                $ awk '/^[ 	]*$/{next}{print}' new.txt

                Mēs esam noņēmuši visas tukšās rindas no faila new.txt, izmantojot vienkāršu regulāro izteiksmi un iebūvēto awk, ko sauc par nākamo.

                20. Noņemiet beigu atstarpes


                Daudzu Linux komandu izvade satur beigu atstarpes. Mēs varam izmantot komandu awk operētājsistēmā Linux, lai noņemtu tādas atstarpes kā atstarpes un cilnes. Pārbaudiet zemāk esošo komandu, lai uzzinātu, kā risināt šādas problēmas, izmantojot awk.

                $ awk '{sub(/[ 	]*$/, '');print}' new.txt test.txt

                Pievienojiet mūsu atsauces failiem dažas atstarpes un pārbaudiet, vai awk tās ir veiksmīgi noņemtas. Tas manā mašīnā to izdarīja veiksmīgi.

                21. Pārbaudiet lauku skaitu katrā rindā


                Mēs varam viegli pārbaudīt, cik lauku ir rindā, izmantojot vienkāršu awk one-liner. Ir daudz veidu, kā to izdarīt, taču šim uzdevumam mēs izmantosim dažus no awk iebūvētajiem mainīgajiem. Mainīgais NR dod mums rindas numuru, un NF mainīgais nodrošina lauku skaitu.

                $ awk '{print NR,'-->',NF}' test.txt

                Tagad mēs varam apstiprināt, cik daudz lauku ir katrā rindā test.txt dokuments. Tā kā katra šī faila rinda satur 5 laukus, mēs esam pārliecināti, ka komanda darbojas, kā paredzēts.

                22. Pārbaudiet pašreizējo faila nosaukumu


                Awk mainīgais FILENAME tiek izmantots pašreizējā ievades faila nosaukuma pārbaudei. Mēs demonstrējam, kā tas darbojas, izmantojot vienkāršu piemēru. Tomēr tas var būt noderīgi situācijās, kad faila nosaukums nav skaidri zināms vai ja ir vairāk nekā viens ievades fails.

                $ awk '{print FILENAME}' test.txt $ awk '{print FILENAME}' test.txt new.txt

                Iepriekš minētās komandas izdrukā faila nosaukumu awk, ar kuru strādā, katru reizi, kad tiek apstrādāta jauna ievades failu rinda.

                23. Pārbaudiet apstrādāto ierakstu skaitu


                Šis piemērs parādīs, kā mēs varam pārbaudīt ierakstu skaitu, ko apstrādā komanda awk. Tā kā liels skaits Linux sistēmas administratoru pārskatu ģenerēšanai izmanto awk, tas viņiem ir ļoti noderīgi.

                $ awk '{print 'Processing Record - ',NR;} END {print '
                Total Records Processed:', NR;}' test.txt

                Es bieži izmantoju šo awk fragmentu, lai iegūtu skaidru pārskatu par savām darbībām. Jūs varat to viegli pielāgot, lai pielāgotos jaunām idejām vai darbībām.

                apstrādāto rindu skaits awk

                24. Izdrukājiet ierakstu kopējo rakstzīmju skaitu


                Awk valoda nodrošina ērtu funkciju garums (), kas norāda, cik rakstzīmju ir ierakstā. Tas ir ļoti noderīgi vairākos scenārijos. Ātri apskatiet šo piemēru, lai redzētu, kā tas darbojas.

                $ echo 'A random text string...' | awk '{ print length($0); }'
                $ awk '{ print length($0); }' /etc/passwd

                Iepriekš minētā komanda drukās kopējo rakstzīmju skaitu katrā ievades virknes vai faila rindā.

                25. Izdrukājiet visas līnijas ilgāk par noteikto garumu


                Iepriekšminētajai komandai mēs varam pievienot dažus nosacījumus un likt tai drukāt tikai tās rindas, kas ir lielākas par iepriekš noteiktu garumu. Tas ir noderīgi, ja jums jau ir priekšstats par konkrēta ieraksta garumu.

                $ echo 'A random text string...' | awk 'length($0) > 10'
                $ awk '{ length($0) > 5; }' /etc/passwd

                Jūs varat izmantot vairāk iespēju un/vai argumentu, lai pielāgotu komandu, pamatojoties uz jūsu prasībām.

                26. Izdrukājiet rindu, rakstzīmju un vārdu skaitu


                Šī Linux komanda awk izdrukā rindu, rakstzīmju un vārdu skaitu noteiktā ievadē. Šīs darbības veikšanai tiek izmantots mainīgais NR, kā arī dažas pamata aritmētikas.

                $ echo 'This is a input line...' | awk '{ w += NF; c += length + 1 } END { print NR, w, c }'

                Tas parāda, ka ievades virknē ir 1 rinda, 5 vārdi un tieši 24 rakstzīmes.

                27. Aprēķiniet vārdu biežumu


                Mēs varam apvienot asociatīvos masīvus un for ciklu in awk, lai aprēķinātu dokumenta vārdu biežumu. Šī komanda var šķist nedaudz sarežģīta, taču tā ir diezgan vienkārša, kad skaidri saprotat pamatkonstrukcijas.

                $ awk 'BEGIN {FS='[^a-zA-Z]+' } { for (i=1; i<=NF; i++) words[tolower($i)]++ } END { for (i in words) print i, words[i] }' test.txt

                Ja jums ir problēmas ar vienas līnijas fragmentu, nokopējiet šo kodu jaunā failā un palaidiet to, izmantojot avotu.

                $ cat > frequency.awk BEGIN { FS='[^a-zA-Z]+' } { for (i=1; i<=NF; i++) words[tolower($i)]++ } END { for (i in words) print i, words[i] }

                Pēc tam palaidiet to, izmantojot -f iespēja.

                $ awk -f frequency.awk test.txt

                28. Pārdēvēt failus, izmantojot AWK


                Komandu awk var izmantot, lai pārdēvētu visus failus, kas atbilst noteiktiem kritērijiem. Šī komanda parāda, kā izmantot awk, lai pārdēvētu visus direktorijā esošos .MP3 failus uz .mp3 failiem.

                $ touch {a,b,c,d,e}.MP3 $ ls *.MP3 | awk '{ printf('mv '%s' '%s'
                ', $0, tolower($0)) }' $ ls *.MP3 | awk '{ printf('mv '%s' '%s'
                ', $0, tolower($0)) }' | sh

                Pirmkārt, mēs izveidojām dažus demonstrācijas failus ar paplašinājumu .MP3. Otrā komanda parāda lietotājam, kas notiek, ja pārdēvēšana ir veiksmīga. Visbeidzot, pēdējā komanda pārdēvē operāciju, izmantojot Linux komandu mv.

                29. Izdrukājiet skaitļa kvadrātsakni


                AWK piedāvā vairākas iebūvētas funkcijas ciparu manipulēšanai. Viens no tiem ir funkcija sqrt (). Tā ir C līdzīga funkcija, kas atgriež dotā skaitļa kvadrātsakni. Ātri apskatiet nākamo piemēru, lai redzētu, kā tas darbojas kopumā.

                $ awk 'BEGIN{ print sqrt(36); print sqrt(0); print sqrt(-16) }'

                Tā kā jūs nevarat noteikt negatīvā skaitļa kvadrātsakni, izvadē sqrt (-12) vietā tiks parādīts īpašs atslēgvārds ar nosaukumu “nan”.

                sqrt funkcija Linux awk komandā

                30. Izdrukājiet skaitļa logaritmu


                Funkcijas žurnāls awk () nodrošina skaitļa dabisko logaritmu. Tomēr tas darbosies tikai ar pozitīviem skaitļiem, tāpēc ņemiet vērā lietotāju ievades apstiprināšanu. Pretējā gadījumā kāds var pārtraukt jūsu awk programmas un iegūt priviliģētu piekļuvi sistēmas resursiem.

                $ awk 'BEGIN{ print log(36); print log(0); print log(-16) }'

                Jums vajadzētu redzēt logaritmu 36 un pārbaudīt, vai logaritms 0 ir bezgalība, un negatīvās vērtības žurnāls ir “Nav skaitlis” vai nan.

                31. Izdrukājiet skaitļa eksponenciālu


                Eksponenciālais os a skaitlis n nodrošina e^n vērtību. To parasti izmanto awk skriptos, kas nodarbojas ar lieliem cipariem vai sarežģītu aritmētisko loģiku. Mēs varam ģenerēt skaitļa eksponenciālu, izmantojot iebūvēto awk funkciju exp ().

                $ awk 'BEGIN{ print exp(30); print log(0); print exp(-16) }'

                Tomēr awk nevar aprēķināt eksponenciālu lieliem skaitļiem. Jums vajadzētu veikt šādus aprēķinus, izmantojot zema līmeņa programmēšanas valodas, piemēram, C, un norādīt vērtību saviem awk skriptiem.

                32. Izveidojiet nejaušus skaitļus, izmantojot AWK


                Mēs varam izmantot komandu awk Linux, lai ģenerētu nejaušus skaitļus. Šie skaitļi būs diapazonā no 0 līdz 1, bet nekad 0 vai 1. Jūs varat reizināt fiksētu vērtību ar iegūto skaitli, lai iegūtu lielāku izlases vērtību.

                $ awk 'BEGIN{ print rand(); print rand()*99 }'

                Funkcijai rand () nav nepieciešami argumenti. Turklāt šīs funkcijas radītie skaitļi nav precīzi nejauši, bet drīzāk pseidogadījumi. Turklāt ir diezgan viegli paredzēt šos skaitļus no skriešanas uz skrējienu. Tāpēc jums nevajadzētu paļauties uz tiem, veicot sensitīvus aprēķinus.

                33. Krāsu sastādītāja brīdinājumi sarkanā krāsā


                Mūsdienu Linux kompilatori brīdinās, ja jūsu kods nesaglabā valodas standartus vai ja tajā ir kļūdas, kas neaptur programmas izpildi. Šī komanda awk sarkanā krāsā drukās kompilatora ģenerētās brīdinājuma līnijas.

                $ gcc -Wall main.c |& awk '/: warning:/{print 'x1B[01;31m' $0 'x1B[m';next;}{print}'

                Šī komanda ir noderīga, ja vēlaties precīzi noteikt kompilatora brīdinājumus. Šo komandu varat izmantot ar jebkuru kompilatoru, izņemot gcc, vienkārši mainiet modeli /: brīdinājums: /, lai atspoguļotu konkrēto kompilatoru.

                34. Izdrukājiet failu sistēmas UUID informāciju


                UUID vai Universāli unikāls identifikators ir skaitlis, ko var izmantot, lai identificētu tādus resursus kā Linux failu sistēma . Mēs varam vienkārši izdrukāt mūsu failu sistēmas UUID informāciju, izmantojot šādu Linux awk komandu.

                $ awk '/UUID/ {print $0}' /etc/fstab

                Šī komanda meklē tekstu UUID /etc/fstab failu, izmantojot awk modeļus. Tas atgriež komentāru no faila, kas mūs neinteresē. Zemāk esošā komanda nodrošinās, ka mēs saņemam tikai tās rindas, kas sākas ar UUID.

                $ awk '/^UUID/ {print $1}' /etc/fstab

                Tas ierobežo izvadi līdz pirmajam laukam. Tātad mēs iegūstam tikai UUID numurus.

                35. Izdrukājiet Linux kodola attēla versiju


                Tiek izmantoti dažādi Linux kodola attēli dažādi Linux izplatījumi . Mēs varam viegli izdrukāt precīzu kodola attēlu, uz kura balstās mūsu sistēma, izmantojot awk. Pārbaudiet šo komandu, lai redzētu, kā tas darbojas kopumā.

                $ uname -a | awk '{print $3}'

                Mēs vispirms esam izdevuši komandu uname ar -uz opciju un pēc tam pārsūtīja šos datus uz awk. Tad mēs esam ieguvuši kodola attēla versijas informāciju, izmantojot awk.

                36. Pievienojiet rindu numurus pirms rindām


                Lietotāji diezgan bieži var saskarties ar teksta failiem, kas nesatur rindu numurus. Par laimi, jūs varat viegli pievienot rindu numurus failam, izmantojot Linux komandu awk. Rūpīgi apskatiet zemāk redzamo piemēru, lai redzētu, kā tas darbojas reālajā dzīvē.

                $ awk '{ print FNR '. ' $0 ;next}{print}' test.txt

                Iepriekš minētā komanda pievienos rindas numuru pirms katras mūsu test.txt atsauces faila rindas. Lai to novērstu, tas izmanto iebūvēto awk mainīgo FNR.

                pievienojiet rindu numurus, izmantojot komandu awk

                37. Izdrukājiet failu pēc satura kārtošanas


                Mēs varam arī izmantot awk, lai izdrukātu sakārtotu visu rindu sarakstu. Šīs komandas drukā visu mūsu test.txt valstu nosaukumu sakārtotā secībā.

                $ awk -F ':' '{ print $1 }' test.txt | sort

                Nākamā komanda drukās visu lietotāju pieteikšanās vārdu no /etc/passwd failu.

                $ awk -F ':' '{ print $1 }' /etc/passwd | sort

                Jūs varat viegli mainīt kārtošanas kārtību, mainot kārtošanas komandu.

                38. Izdrukājiet rokasgrāmatas lapu


                Rokasgrāmatas lapā ir detalizēta informācija par komandu awk, kā arī visas pieejamās iespējas. Tas ir ārkārtīgi svarīgi cilvēkiem, kuri vēlas rūpīgi apgūt awk komandu.

                $ man awk

                Ja vēlaties apgūt sarežģītas awk funkcijas, tas jums ļoti palīdzēs. Iepazīstieties ar šo dokumentāciju ikreiz, kad esat saskāries ar problēmu.

                39. Izdrukājiet palīdzības lapu


                Palīdzības lapā ir apkopota informācija par visiem iespējamiem komandrindas argumentiem. Varat izsaukt palīdzības ceļvedi, lai iegūtu awk, izmantojot vienu no šīm komandām.

                $ awk -h $ awk --help

                Skatiet šo lapu, ja vēlaties ātri apskatīt visas pieejamās awk iespējas.

                40. Informācija par drukas versiju


                Versijas informācija sniedz mums informāciju par programmu veidošanu. Awk versijas lapā ir tāda informācija kā autortiesības, apkopošanas rīki utt. Šo informāciju varat skatīt, izmantojot vienu no šīm awk komandām.

                $ awk -V $ awk --version

                Beigu domas


                Komanda awk operētājsistēmā Linux ļauj mums veikt visu veidu lietas, tostarp failu apstrādi un sistēmas uzturēšanu. Tas nodrošina daudzveidīgu darbību klāstu, lai diezgan viegli tiktu galā ar ikdienas skaitļošanas uzdevumiem. Mūsu redaktori ir apkopojuši šo rokasgrāmatu ar 40 noderīgām awk komandām, kuras var izmantot teksta manipulācijām vai administrēšanai. Tā kā AWK pati par sevi ir pilnvērtīga programmēšanas valoda, ir vairāki veidi, kā veikt vienu un to pašu darbu. Tāpēc nebrīnieties, kāpēc mēs dažas lietas darām citādi. Jūs vienmēr varat apkopot savas receptes, pamatojoties uz savu prasmju kopumu un pieredzi. Ja jums ir kādi jautājumi, atstājiet mums savas domas.

                • Tagi
                • Programmēšanas rīki
                • Sistēmas utilītas rīki
                Kopīgot Facebook Twitter Pinterest WhatsApp ReddIt Telegramma Viber

                  7 KOMENTĀRI

                  1. Ramesh 2020. gada 24. aprīlis plkst. 07:48

                    Kas ir labākais sed vai awk?

                    Atbildēt
                    • lauhub 2021. gada 6. janvāris 04:41

                      Abi ir labākie:

                      - sed ir noderīgs vienkāršiem nomaiņas/izdevuma uzdevumiem, un tam ir daži ierobežojumi sarežģītu uzdevumu programmēšanai (lai gan pieredzējuši lietotāji var darīt daudzas lietas)

                      - awk ir jābūt daudzpusīgākam, lai veiktu vienkāršus uzdevumus, bet ļauj sarežģītākām programmām izmantot sarežģītākas datu struktūras.

                      Jebkurā gadījumā viss ir atkarīgs no jūsu vajadzībām un zināšanām par šiem rīkiem

                      Atbildēt
                    • DC 2021. gada 16. jūlijs plkst. 09:17

                      Abi ir funkcionāli atšķirīgi. sed ir ierobežota funkcionalitāte. Parasti izmanto, lai atrastu un aizstātu virkņu redaktoru.
                      awk tiek izmantots datu manipulācijām un nodrošina vairāk programmēšanas funkcionalitātes

                      Atbildēt
                  2. Ahmeds 2020. gada 16. aprīlis plkst. 13:24

                    Sveiki,
                    Piemēri ir lieliski, taču būtu bijis labāk, ja jūs būtu ievietojis izlaidi arī pēc piemēra.

                    Atbildēt
                    • Rubaiat Hossain 2020. gada 18. aprīlis plkst. 01:28

                      Paldies, Ahmed, ka tu paliec pie mums. Tomēr mēs baidāmies, ka katrai komandai pievienojot atsevišķus attēlus, ceļvedis būs ārkārtīgi garš, un tāpēc lietotāji, kas to lasa no maza ekrāna ierīcēm, piemēram, tālruņiem/planšetdatoriem, var saskarties ar nevēlamu ritināšanas pieredzi.

                      Turklāt mēs mudinām mūsu lasītājus uzlabot šīs awk komandas Linux, atrodoties ceļā, un izmēģināt tās no pirmavotiem. Tādā veidā jūs tos apgūsit ātrāk.

                      Atbildēt
                  3. Stefans 2020. gada 6. aprīlī plkst. 10:54

                    Lieliski piemēri. Paldies par šo

                    Atbildēt
                  4. Kārans Grovers 2020. gada 2. aprīlī plkst. 17:29

                    jauki awk piemēri

                    Atbildēt

                  ATSTĀJ ATBILDI Atcelt atbildi

                  Komentārs: Lūdzu, ievadiet savu komentāru! Vārds:* Lūdzu, ievadiet savu vārdu šeit E -pasts:* Jūs esat ievadījis nepareizu e -pasta adresi! Lūdzu, šeit ievadiet savu e -pasta adresi Vietne:

                  Saglabājiet manu vārdu, e -pastu un vietni šajā pārlūkprogrammā, lai nākamreiz komentētu.

                  spot_img

                  Jaunākā ziņa

                  Android

                  10 labākās sejas maiņas lietotnes Android un iOS ierīcēm

                  Windows OS

                  Kā ieplānot Windows 10, lai automātiski iztukšotu atkritni

                  Android

                  10 labākās rēķinu izrakstīšanas lietotnes Android ierīcei, lai ātri samaksātu

                  Windows OS

                  10 labākās GPU etalona programmatūras jūsu datoram

                  Vajag izlasīt

                  Linux

                  Kā instalēt un konfigurēt XAMPP operētājsistēmā Ubuntu Linux

                  Linux

                  Ubuntu Communitheme - Jauna Ubuntu kopienas tēma

                  Linux

                  Kā instalēt programmatūru no avota koda savā Linux sistēmā

                  Linux

                  RedNotebook - mūsdienīga un bezmaksas dienasgrāmatu un žurnālu programmatūra Linux

                  Saistītā ziņa

                  Kā instalēt un iestatīt kabīnes tīmekļa konsoli Linux sistēmā

                  Kā instalēt un iestatīt Yii PHP Framework Ubuntu Linux

                  Kā labot W: dažiem indeksa failiem neizdevās lejupielādēt kļūdu Ubuntu Linux

                  Kā instalēt un iestatīt 1Password Linux darbvirsmā

                  Kā instalēt jaunāko GNU Nano teksta redaktoru Linux darbvirsmā

                  Kā instalēt jaunu relikvijas infrastruktūras aģentu Linux sistēmā

                  )) }' | sh

                  Pirmkārt, mēs izveidojām dažus demonstrācijas failus ar paplašinājumu .MP3. Otrā komanda parāda lietotājam, kas notiek, ja pārdēvēšana ir veiksmīga. Visbeidzot, pēdējā komanda pārdēvē operāciju, izmantojot Linux komandu mv.

                  29. Izdrukājiet skaitļa kvadrātsakni


                  AWK piedāvā vairākas iebūvētas funkcijas ciparu manipulēšanai. Viens no tiem ir funkcija sqrt (). Tā ir C līdzīga funkcija, kas atgriež dotā skaitļa kvadrātsakni. Ātri apskatiet nākamo piemēru, lai redzētu, kā tas darbojas kopumā.

                  $ awk 'BEGIN{ print sqrt(36); print sqrt(0); print sqrt(-16) }'

                  Tā kā jūs nevarat noteikt negatīvā skaitļa kvadrātsakni, izvadē sqrt (-12) vietā tiks parādīts īpašs atslēgvārds ar nosaukumu “nan”.

                  sqrt funkcija Linux awk komandā

                  30. Izdrukājiet skaitļa logaritmu


                  Funkcijas žurnāls awk () nodrošina skaitļa dabisko logaritmu. Tomēr tas darbosies tikai ar pozitīviem skaitļiem, tāpēc ņemiet vērā lietotāju ievades apstiprināšanu. Pretējā gadījumā kāds var pārtraukt jūsu awk programmas un iegūt priviliģētu piekļuvi sistēmas resursiem.

                  $ awk 'BEGIN{ print log(36); print log(0); print log(-16) }'

                  Jums vajadzētu redzēt logaritmu 36 un pārbaudīt, vai logaritms 0 ir bezgalība, un negatīvās vērtības žurnāls ir “Nav skaitlis” vai nan.

                  31. Izdrukājiet skaitļa eksponenciālu


                  Eksponenciālais os a skaitlis n nodrošina e^n vērtību. To parasti izmanto awk skriptos, kas nodarbojas ar lieliem cipariem vai sarežģītu aritmētisko loģiku. Mēs varam ģenerēt skaitļa eksponenciālu, izmantojot iebūvēto awk funkciju exp ().

                  $ awk 'BEGIN{ print exp(30); print log(0); print exp(-16) }'

                  Tomēr awk nevar aprēķināt eksponenciālu lieliem skaitļiem. Jums vajadzētu veikt šādus aprēķinus, izmantojot zema līmeņa programmēšanas valodas, piemēram, C, un norādīt vērtību saviem awk skriptiem.

                  32. Izveidojiet nejaušus skaitļus, izmantojot AWK


                  Mēs varam izmantot komandu awk Linux, lai ģenerētu nejaušus skaitļus. Šie skaitļi būs diapazonā no 0 līdz 1, bet nekad 0 vai 1. Jūs varat reizināt fiksētu vērtību ar iegūto skaitli, lai iegūtu lielāku izlases vērtību.

                  $ awk 'BEGIN{ print rand(); print rand()*99 }'

                  Funkcijai rand () nav nepieciešami argumenti. Turklāt šīs funkcijas radītie skaitļi nav precīzi nejauši, bet drīzāk pseidogadījumi. Turklāt ir diezgan viegli paredzēt šos skaitļus no skriešanas uz skrējienu. Tāpēc jums nevajadzētu paļauties uz tiem, veicot sensitīvus aprēķinus.

                  33. Krāsu sastādītāja brīdinājumi sarkanā krāsā


                  Mūsdienu Linux kompilatori brīdinās, ja jūsu kods nesaglabā valodas standartus vai ja tajā ir kļūdas, kas neaptur programmas izpildi. Šī komanda awk sarkanā krāsā drukās kompilatora ģenerētās brīdinājuma līnijas.

                  $ gcc -Wall main.c |& awk '/: warning:/{print 'x1B[01;31m' 
                  Mājas A-Z komandas 40 Praktiska un noderīga awk komanda Linux un BSD AutorsMehedi Hasan InA-Z komandasPiedāvātie 1271 7

                  SATURS

                  1. Izpratne par AWK programmām
                  2. Praktiski awk komandu piemēri Linux
                    1. 1. Izdrukājiet specifiskus laukus no teksta izvades
                    2. 2. Drukājiet vairākus laukus no teksta izvades
                    3. 3. Izmantojiet BEGIN paziņojumus
                    4. 4. Izmantojiet END paziņojumus
                    5. 5. Meklēšana, izmantojot modeļus
                    6. 6. Izņemiet informāciju no failiem
                    7. 7. Izlasiet AWK skriptu no avota faila
                    8. 8. Iestatiet ievades lauka atdalītāju
                    9. 9. Drukāt informāciju, pamatojoties uz stāvokli
                    10. 10. Drukājiet informāciju, salīdzinot regulārās izteiksmes
                    11. 11. Saskaitiet kopējo ievadīto rindu skaitu
                    12. 12. Iestatiet izvades lauka atdalītāju
                    13. 13. If Construct izmantošana
                    14. 14. If-Else Constructs izmantošana
                    15. 15. Iestatiet lauka platumu
                    16. 16. Iestatiet ierakstu atdalītāju
                    17. 17. Drukas vides mainīgie
                    18. 18. Izlaist dažus laukus no izvades
                    19. 19. Noņemiet tukšās līnijas
                    20. 20. Noņemiet beigu atstarpes
                    21. 21. Pārbaudiet lauku skaitu katrā rindā
                    22. 22. Pārbaudiet pašreizējo faila nosaukumu
                    23. 23. Pārbaudiet apstrādāto ierakstu skaitu
                    24. 24. Izdrukājiet ierakstu kopējo rakstzīmju skaitu
                    25. 25. Izdrukājiet visas līnijas ilgāk par noteikto garumu
                    26. 26. Izdrukājiet rindu, rakstzīmju un vārdu skaitu
                    27. 27. Aprēķiniet vārdu biežumu
                    28. 28. Pārdēvēt failus, izmantojot AWK
                    29. 29. Izdrukājiet skaitļa kvadrātsakni
                    30. 30. Izdrukājiet skaitļa logaritmu
                    31. 31. Izdrukājiet skaitļa eksponenciālu
                    32. 32. Izveidojiet nejaušus skaitļus, izmantojot AWK
                    33. 33. Krāsu sastādītāja brīdinājumi sarkanā krāsā
                    34. 34. Izdrukājiet failu sistēmas UUID informāciju
                    35. 35. Izdrukājiet Linux kodola attēla versiju
                    36. 36. Pievienojiet rindu numurus pirms rindām
                    37. 37. Izdrukājiet failu pēc satura kārtošanas
                    38. 38. Izdrukājiet rokasgrāmatas lapu
                    39. 39. Izdrukājiet palīdzības lapu
                    40. 40. Informācija par drukas versiju
                  3. Beigu domas

                  AWK ir spēcīga> pilnvērtīga programmēšanas valoda . AWK savu nosaukumu ieguvis no tā autoru iniciāļiem - Aho, Veinbergera un Kernighana. Komanda awk Linux un citās Unix sistēmās izsauc tulku, kas palaiž AWK skriptus. Nesenās sistēmās pastāv vairākas awk ieviešanas, piemēram, gawk (GNU awk), mawk (Minimal awk) un nawk (New awk). Apskatiet tālāk sniegtos piemērus, ja vēlaties apgūt awk.

                  Izpratne par AWK programmām


                  Programmas, kas rakstītas awk, sastāv no noteikumiem, kas ir vienkārši modeļu un darbību pāris. Modeļi ir sagrupēti iekavās {}, un darbības daļa tiek aktivizēta ikreiz, kad awk atrod tekstam atbilstošus tekstus. Lai gan awk tika izstrādāts vienas līnijas rakstīšanai, pieredzējuši lietotāji ar to var viegli rakstīt sarežģītus skriptus.

                  awk komanda Linux

                  AWK programmas ir ļoti noderīgas liela mēroga failu apstrādei. Tas identificē teksta laukus, izmantojot speciālās rakstzīmes un atdalītājus. Tā piedāvā arī augsta līmeņa programmēšanas konstrukcijas, piemēram, masīvus un cilpas. Tāpēc ir ļoti iespējams rakstīt stabilas programmas, izmantojot vienkāršu awk.

                  Praktiski awk komandu piemēri Linux


                  Administratori parasti izmanto awk datu iegūšanai un ziņošanai kopā ar cita veida failu manipulācijām. Zemāk mēs detalizētāk apspriedām awk. Rūpīgi izpildiet komandas un izmēģiniet tās savā terminālī, lai iegūtu pilnīgu izpratni.

                  1. Izdrukājiet specifiskus laukus no teksta izvades


                  Visvairāk plaši izmantotas Linux komandas parādīt savus rezultātus, izmantojot dažādus laukus. Parasti mēs izmantojam Linux izgriešanas komandu, lai no šādiem datiem iegūtu noteiktu lauku. Tomēr zemāk esošā komanda parāda, kā to izdarīt, izmantojot komandu awk.

                  $ who | awk '{print $1}'

                  Šī komanda parādīs tikai pirmo lauku no komandas who izvades. Tātad jūs vienkārši iegūsit visu pašlaik reģistrēto lietotāju lietotājvārdus. Šeit, $ 1 apzīmē pirmo lauku. Jums ir jāizmanto $ N ja vēlaties iegūt N-to lauku.

                  2. Drukājiet vairākus laukus no teksta izvades


                  Awk tulks ļauj mums izdrukāt vēlamo lauku skaitu. Tālāk sniegtajos piemēros ir parādīts, kā iegūt pirmos divus laukus no komandas who izvades.

                  $ who | awk '{print $1, $2}'

                  Varat arī kontrolēt izvades lauku secību. Šajā piemērā vispirms tiek parādīta otrā sleja, ko izveidojusi komanda who, un pēc tam pirmā kolonna otrajā laukā.

                  $ who | awk '{print $2, $1}'

                  Vienkārši atstājiet laukā parametrus ( $ N ), lai parādītu visus datus.

                  3. Izmantojiet BEGIN paziņojumus


                  BEGIN paziņojums ļauj lietotājiem izvadē izdrukāt zināmu informāciju. To parasti izmanto awk ģenerēto izejas datu formatēšanai. Šī paziņojuma sintakse ir parādīta zemāk.

                  BEGIN { Actions} {ACTION}

                  Darbības, kas veido sadaļu SĀKT, vienmēr tiek aktivizētas. Tad awk izlasa atlikušās rindas pa vienai un redz, vai kaut kas ir jādara.

                  $ who | awk 'BEGIN {print 'User	From'} {print $1, $2}'

                  Iepriekš minētā komanda iezīmēs divus izvades laukus, kas iegūti no komandas izvades.

                  4. Izmantojiet END paziņojumus


                  Varat arī izmantot paziņojumu END, lai pārliecinātos, ka noteiktas darbības vienmēr tiek veiktas jūsu darbības beigās. Vienkārši ievietojiet sadaļu END pēc galvenā darbību kopuma.

                  $ who | awk 'BEGIN {print 'User	From'} {print $1, $2} END {print '--COMPLETED--'}'

                  Iepriekš minētā komanda pievienos norādīto virkni izvades beigās.

                  5. Meklēšana, izmantojot modeļus


                  Liela daļa awk darbu ir saistīta ar modeļu saskaņošanu un regulāro izteiksmi. Kā mēs jau esam apsprieduši, awk meklē modeļus katrā ievades rindā un veic darbību tikai tad, kad tiek aktivizēta atbilstība. Mūsu iepriekšējie noteikumi sastāvēja tikai no darbībām. Zemāk mēs esam ilustrējuši modeļu atbilstības pamatus, izmantojot Linux komandu awk.

                  $ who | awk '/mary/ {print}'

                  Šī komanda redzēs, vai lietotājs Marija pašlaik ir pieteicies vai nē. Ja tiks atrasta atbilstība, tā izvadīs visu rindu.

                  6. Izņemiet informāciju no failiem


                  Komanda awk ļoti labi darbojas ar failiem, un to var izmantot sarežģītiem failu apstrādes uzdevumiem. Šī komanda parāda, kā awk apstrādā failus.

                  $ awk '/hello/ {print}' /usr/share/dict/american-english

                  Šī komanda meklē modeli “sveiki” amerikāņu-angļu vārdnīcas failā. Tas ir pieejams lielākajā daļā Linux balstītas izplatīšanas . Tādējādi šajā failā varat viegli izmēģināt awk programmas.

                  awk modeļa meklēšana

                  7. Izlasiet AWK skriptu no avota faila


                  Lai gan viena līnija programmu rakstīšana ir noderīga, jūs varat arī rakstīt lielas programmas, pilnībā izmantojot awk. Jūs vēlaties tos saglabāt un palaist programmu, izmantojot avota failu.

                  $ awk -f script-file $ awk --file script-file

                  The -f vai - fails opcija ļauj mums norādīt programmas failu. Tomēr jums nav jāizmanto pēdiņas (‘’) skripta faila iekšienē, jo Linux apvalks šādā veidā neskaidros programmas kodu.

                  8. Iestatiet ievades lauka atdalītāju


                  Lauku atdalītājs ir norobežotājs, kas sadala ievades ierakstu. Mēs varam viegli norādīt lauku atdalītājus awk, izmantojot -F vai -lauku atdalītājs iespēja. Pārbaudiet zemāk esošās komandas, lai redzētu, kā tas darbojas.

                  $ echo 'This-is-a-simple-example' | awk -F - ' {print $1} ' $ echo 'This-is-a-simple-example' | awk --field-separator - ' {print $1} '

                  Tas darbojas vienādi, ja Linux izmanto skripta failus, nevis vienu līniju awk komandu.

                  9. Drukāt informāciju, pamatojoties uz stāvokli


                  Esam apsprieduši Linux izgriešanas komanda iepriekšējā ceļvedī. Tagad mēs parādīsim, kā iegūt informāciju, izmantojot awk, tikai tad, ja ir noteikti kritēriji. Mēs izmantosim to pašu testa failu, ko izmantojām šajā rokasgrāmatā. Tāpēc dodieties tur un izveidojiet kopiju test.txt failu.

                  $ awk '$4 > 50' test.txt

                  Šī komanda izdrukās visas valstis no faila test.txt, kurā ir vairāk nekā 50 miljoni iedzīvotāju.

                  10. Drukājiet informāciju, salīdzinot regulārās izteiksmes


                  Šī awk komanda pārbauda, ​​vai jebkuras rindas trešais lauks satur rakstu “Lira”, un, ja tiek atrasta atbilstība, izdrukā visu rindu. Mēs atkal izmantojam failu test.txt, ko izmanto, lai ilustrētu Linux izgriešanas komanda . Tāpēc pirms turpināt, pārliecinieties, vai esat ieguvis šo failu.

                  $ awk '$3 ~ /Lira/' test.txt

                  Ja vēlaties, varat drukāt tikai noteiktu daļu no jebkuras spēles.

                  11. Saskaitiet kopējo ievadīto rindu skaitu


                  Komandai awk ir daudz speciālu mainīgo, kas ļauj mums viegli veikt daudzas uzlabotas lietas. Viens no šādiem mainīgajiem ir NR, kas satur pašreizējo rindas numuru.

                  $ awk 'END {print NR} ' test.txt

                  Šī komanda izvadīs, cik rindu ir mūsu failā test.txt. Tas vispirms atkārtojas pa katru rindu, un, kad tas ir sasniedzis END, tas izdrukās NR vērtību, kas šajā gadījumā satur kopējo rindu skaitu.

                  12. Iestatiet izvades lauka atdalītāju


                  Iepriekš mēs esam parādījuši, kā atlasīt ievades lauku atdalītājus, izmantojot -F vai -lauku atdalītājs iespēja. Komanda awk arī ļauj mums norādīt izvades lauku atdalītāju. Zemāk redzamais piemērs to parāda, izmantojot praktisku piemēru.

                  $ date | awk 'OFS='-' {print$2,$3,$6}'

                  Šī komanda izdrukā pašreizējo datumu, izmantojot formātu dd-mm-yy. Palaidiet datuma programmu bez awk, lai redzētu, kā izskatās noklusējuma izvade.

                  13. If Construct izmantošana


                  Tāpat kā citi populāras programmēšanas valodas , awk arī nodrošina lietotājus ar if-else konstrukcijām. Ja paziņojumam awk ir šāda sintakse.

                  if (expression) { first_action second_action }

                  Atbilstošās darbības tiek veiktas tikai tad, ja nosacījuma izteiksme ir patiesa. Zemāk redzamais piemērs to parāda, izmantojot mūsu atsauces failu test.txt .

                  $ awk '{ if ($4>100) print }' test.txt

                  Jums nav stingri jāuztur ievilkums.

                  14. If-Else Constructs izmantošana


                  Izmantojot zemāk esošo sintaksi, varat izveidot noderīgas trepes. Tie ir noderīgi, izstrādājot sarežģītus awk skriptus, kas attiecas uz dinamiskiem datiem.

                  if (expression) first_action else second_action
                  $ awk '{ if ($4>100) print; else print }' test.txt

                  Iepriekš minētā komanda drukās visu atsauces failu, jo ceturtais lauks katrai rindai nav lielāks par 100.

                  15. Iestatiet lauka platumu


                  Dažreiz ievades dati ir diezgan netīri, un lietotājiem var būt grūti tos vizualizēt savos pārskatos. Par laimi, awk nodrošina jaudīgu iebūvētu mainīgo FIELDWIDTHS, kas ļauj mums definēt ar atstarpēm atdalītu platumu sarakstu.

                  $ echo 5675784464657 | awk 'BEGIN {FIELDWIDTHS= '3 4 5'} {print $1, $2, $3}'

                  Tas ir ļoti noderīgi, analizējot izkliedētos datus, jo mēs varam kontrolēt izvades lauka platumu tieši tā, kā vēlamies.

                  lauka platums awk

                  16. Iestatiet ierakstu atdalītāju


                  RS vai ierakstu atdalītājs ir vēl viens iebūvēts mainīgais, kas ļauj mums norādīt, kā ieraksti tiek atdalīti. Vispirms izveidosim failu, kas parādīs šī awk mainīgā darbību.

                  $ cat new.txt Melinda James 23 New Hampshire (222) 466-1234 Daniel James 99 Phonenix Road (322) 677-3412
                  $ awk 'BEGIN{FS='
                  '; RS=''} {print $1,$3}' new.txt

                  Šī komanda parsēs dokumentu un izslēgs abu personu vārdu un adresi.

                  17. Drukas vides mainīgie


                  Komanda awk Linux ļauj mums viegli izdrukāt vides mainīgos, izmantojot mainīgo ENVIRON. Zemāk esošā komanda parāda, kā to izmantot, lai izdrukātu mainīgā PATH saturu.

                  $ awk 'BEGIN{ print ENVIRON['PATH'] }'

                  Varat izdrukāt jebkura vides mainīgā saturu, aizstājot mainīgā ENVIRON argumentu. Zemāk esošā komanda izdrukā vides mainīgā HOME vērtību.

                  $ awk 'BEGIN{ print ENVIRON['HOME'] }'

                  18. Izlaist dažus laukus no izvades


                  Komanda awk ļauj mums izlaist noteiktas rindas no mūsu izvades. Šī komanda to parādīs, izmantojot mūsu atsauces failu test.txt .

                  $ awk -F':' '{$2=''; print}' test.txt

                  Šī komanda izlaidīs mūsu faila otro kolonnu, kurā ir katras valsts galvaspilsētas nosaukums. Varat arī izlaist vairākus laukus, kā parādīts nākamajā komandā.

                  $ awk -F':' '{$2='';$3='';print}' test.txt

                  19. Noņemiet tukšās līnijas


                  Dažreiz dati var saturēt pārāk daudz tukšu rindu. Jūs varat izmantot komandu awk, lai diezgan viegli noņemtu tukšās rindas. Pārbaudiet nākamo komandu, lai redzētu, kā tas darbojas praksē.

                  $ awk '/^[ 	]*$/{next}{print}' new.txt

                  Mēs esam noņēmuši visas tukšās rindas no faila new.txt, izmantojot vienkāršu regulāro izteiksmi un iebūvēto awk, ko sauc par nākamo.

                  20. Noņemiet beigu atstarpes


                  Daudzu Linux komandu izvade satur beigu atstarpes. Mēs varam izmantot komandu awk operētājsistēmā Linux, lai noņemtu tādas atstarpes kā atstarpes un cilnes. Pārbaudiet zemāk esošo komandu, lai uzzinātu, kā risināt šādas problēmas, izmantojot awk.

                  $ awk '{sub(/[ 	]*$/, '');print}' new.txt test.txt

                  Pievienojiet mūsu atsauces failiem dažas atstarpes un pārbaudiet, vai awk tās ir veiksmīgi noņemtas. Tas manā mašīnā to izdarīja veiksmīgi.

                  21. Pārbaudiet lauku skaitu katrā rindā


                  Mēs varam viegli pārbaudīt, cik lauku ir rindā, izmantojot vienkāršu awk one-liner. Ir daudz veidu, kā to izdarīt, taču šim uzdevumam mēs izmantosim dažus no awk iebūvētajiem mainīgajiem. Mainīgais NR dod mums rindas numuru, un NF mainīgais nodrošina lauku skaitu.

                  $ awk '{print NR,'-->',NF}' test.txt

                  Tagad mēs varam apstiprināt, cik daudz lauku ir katrā rindā test.txt dokuments. Tā kā katra šī faila rinda satur 5 laukus, mēs esam pārliecināti, ka komanda darbojas, kā paredzēts.

                  22. Pārbaudiet pašreizējo faila nosaukumu


                  Awk mainīgais FILENAME tiek izmantots pašreizējā ievades faila nosaukuma pārbaudei. Mēs demonstrējam, kā tas darbojas, izmantojot vienkāršu piemēru. Tomēr tas var būt noderīgi situācijās, kad faila nosaukums nav skaidri zināms vai ja ir vairāk nekā viens ievades fails.

                  $ awk '{print FILENAME}' test.txt $ awk '{print FILENAME}' test.txt new.txt

                  Iepriekš minētās komandas izdrukā faila nosaukumu awk, ar kuru strādā, katru reizi, kad tiek apstrādāta jauna ievades failu rinda.

                  23. Pārbaudiet apstrādāto ierakstu skaitu


                  Šis piemērs parādīs, kā mēs varam pārbaudīt ierakstu skaitu, ko apstrādā komanda awk. Tā kā liels skaits Linux sistēmas administratoru pārskatu ģenerēšanai izmanto awk, tas viņiem ir ļoti noderīgi.

                  $ awk '{print 'Processing Record - ',NR;} END {print '
                  Total Records Processed:', NR;}' test.txt

                  Es bieži izmantoju šo awk fragmentu, lai iegūtu skaidru pārskatu par savām darbībām. Jūs varat to viegli pielāgot, lai pielāgotos jaunām idejām vai darbībām.

                  apstrādāto rindu skaits awk

                  24. Izdrukājiet ierakstu kopējo rakstzīmju skaitu


                  Awk valoda nodrošina ērtu funkciju garums (), kas norāda, cik rakstzīmju ir ierakstā. Tas ir ļoti noderīgi vairākos scenārijos. Ātri apskatiet šo piemēru, lai redzētu, kā tas darbojas.

                  $ echo 'A random text string...' | awk '{ print length($0); }'
                  $ awk '{ print length($0); }' /etc/passwd

                  Iepriekš minētā komanda drukās kopējo rakstzīmju skaitu katrā ievades virknes vai faila rindā.

                  25. Izdrukājiet visas līnijas ilgāk par noteikto garumu


                  Iepriekšminētajai komandai mēs varam pievienot dažus nosacījumus un likt tai drukāt tikai tās rindas, kas ir lielākas par iepriekš noteiktu garumu. Tas ir noderīgi, ja jums jau ir priekšstats par konkrēta ieraksta garumu.

                  $ echo 'A random text string...' | awk 'length($0) > 10'
                  $ awk '{ length($0) > 5; }' /etc/passwd

                  Jūs varat izmantot vairāk iespēju un/vai argumentu, lai pielāgotu komandu, pamatojoties uz jūsu prasībām.

                  26. Izdrukājiet rindu, rakstzīmju un vārdu skaitu


                  Šī Linux komanda awk izdrukā rindu, rakstzīmju un vārdu skaitu noteiktā ievadē. Šīs darbības veikšanai tiek izmantots mainīgais NR, kā arī dažas pamata aritmētikas.

                  $ echo 'This is a input line...' | awk '{ w += NF; c += length + 1 } END { print NR, w, c }'

                  Tas parāda, ka ievades virknē ir 1 rinda, 5 vārdi un tieši 24 rakstzīmes.

                  27. Aprēķiniet vārdu biežumu


                  Mēs varam apvienot asociatīvos masīvus un for ciklu in awk, lai aprēķinātu dokumenta vārdu biežumu. Šī komanda var šķist nedaudz sarežģīta, taču tā ir diezgan vienkārša, kad skaidri saprotat pamatkonstrukcijas.

                  $ awk 'BEGIN {FS='[^a-zA-Z]+' } { for (i=1; i<=NF; i++) words[tolower($i)]++ } END { for (i in words) print i, words[i] }' test.txt

                  Ja jums ir problēmas ar vienas līnijas fragmentu, nokopējiet šo kodu jaunā failā un palaidiet to, izmantojot avotu.

                  $ cat > frequency.awk BEGIN { FS='[^a-zA-Z]+' } { for (i=1; i<=NF; i++) words[tolower($i)]++ } END { for (i in words) print i, words[i] }

                  Pēc tam palaidiet to, izmantojot -f iespēja.

                  $ awk -f frequency.awk test.txt

                  28. Pārdēvēt failus, izmantojot AWK


                  Komandu awk var izmantot, lai pārdēvētu visus failus, kas atbilst noteiktiem kritērijiem. Šī komanda parāda, kā izmantot awk, lai pārdēvētu visus direktorijā esošos .MP3 failus uz .mp3 failiem.

                  $ touch {a,b,c,d,e}.MP3 $ ls *.MP3 | awk '{ printf('mv '%s' '%s'
                  ', $0, tolower($0)) }' $ ls *.MP3 | awk '{ printf('mv '%s' '%s'
                  ', $0, tolower($0)) }' | sh

                  Pirmkārt, mēs izveidojām dažus demonstrācijas failus ar paplašinājumu .MP3. Otrā komanda parāda lietotājam, kas notiek, ja pārdēvēšana ir veiksmīga. Visbeidzot, pēdējā komanda pārdēvē operāciju, izmantojot Linux komandu mv.

                  29. Izdrukājiet skaitļa kvadrātsakni


                  AWK piedāvā vairākas iebūvētas funkcijas ciparu manipulēšanai. Viens no tiem ir funkcija sqrt (). Tā ir C līdzīga funkcija, kas atgriež dotā skaitļa kvadrātsakni. Ātri apskatiet nākamo piemēru, lai redzētu, kā tas darbojas kopumā.

                  $ awk 'BEGIN{ print sqrt(36); print sqrt(0); print sqrt(-16) }'

                  Tā kā jūs nevarat noteikt negatīvā skaitļa kvadrātsakni, izvadē sqrt (-12) vietā tiks parādīts īpašs atslēgvārds ar nosaukumu “nan”.

                  sqrt funkcija Linux awk komandā

                  30. Izdrukājiet skaitļa logaritmu


                  Funkcijas žurnāls awk () nodrošina skaitļa dabisko logaritmu. Tomēr tas darbosies tikai ar pozitīviem skaitļiem, tāpēc ņemiet vērā lietotāju ievades apstiprināšanu. Pretējā gadījumā kāds var pārtraukt jūsu awk programmas un iegūt priviliģētu piekļuvi sistēmas resursiem.

                  $ awk 'BEGIN{ print log(36); print log(0); print log(-16) }'

                  Jums vajadzētu redzēt logaritmu 36 un pārbaudīt, vai logaritms 0 ir bezgalība, un negatīvās vērtības žurnāls ir “Nav skaitlis” vai nan.

                  31. Izdrukājiet skaitļa eksponenciālu


                  Eksponenciālais os a skaitlis n nodrošina e^n vērtību. To parasti izmanto awk skriptos, kas nodarbojas ar lieliem cipariem vai sarežģītu aritmētisko loģiku. Mēs varam ģenerēt skaitļa eksponenciālu, izmantojot iebūvēto awk funkciju exp ().

                  $ awk 'BEGIN{ print exp(30); print log(0); print exp(-16) }'

                  Tomēr awk nevar aprēķināt eksponenciālu lieliem skaitļiem. Jums vajadzētu veikt šādus aprēķinus, izmantojot zema līmeņa programmēšanas valodas, piemēram, C, un norādīt vērtību saviem awk skriptiem.

                  32. Izveidojiet nejaušus skaitļus, izmantojot AWK


                  Mēs varam izmantot komandu awk Linux, lai ģenerētu nejaušus skaitļus. Šie skaitļi būs diapazonā no 0 līdz 1, bet nekad 0 vai 1. Jūs varat reizināt fiksētu vērtību ar iegūto skaitli, lai iegūtu lielāku izlases vērtību.

                  $ awk 'BEGIN{ print rand(); print rand()*99 }'

                  Funkcijai rand () nav nepieciešami argumenti. Turklāt šīs funkcijas radītie skaitļi nav precīzi nejauši, bet drīzāk pseidogadījumi. Turklāt ir diezgan viegli paredzēt šos skaitļus no skriešanas uz skrējienu. Tāpēc jums nevajadzētu paļauties uz tiem, veicot sensitīvus aprēķinus.

                  33. Krāsu sastādītāja brīdinājumi sarkanā krāsā


                  Mūsdienu Linux kompilatori brīdinās, ja jūsu kods nesaglabā valodas standartus vai ja tajā ir kļūdas, kas neaptur programmas izpildi. Šī komanda awk sarkanā krāsā drukās kompilatora ģenerētās brīdinājuma līnijas.

                  $ gcc -Wall main.c |& awk '/: warning:/{print 'x1B[01;31m' $0 'x1B[m';next;}{print}'

                  Šī komanda ir noderīga, ja vēlaties precīzi noteikt kompilatora brīdinājumus. Šo komandu varat izmantot ar jebkuru kompilatoru, izņemot gcc, vienkārši mainiet modeli /: brīdinājums: /, lai atspoguļotu konkrēto kompilatoru.

                  34. Izdrukājiet failu sistēmas UUID informāciju


                  UUID vai Universāli unikāls identifikators ir skaitlis, ko var izmantot, lai identificētu tādus resursus kā Linux failu sistēma . Mēs varam vienkārši izdrukāt mūsu failu sistēmas UUID informāciju, izmantojot šādu Linux awk komandu.

                  $ awk '/UUID/ {print $0}' /etc/fstab

                  Šī komanda meklē tekstu UUID /etc/fstab failu, izmantojot awk modeļus. Tas atgriež komentāru no faila, kas mūs neinteresē. Zemāk esošā komanda nodrošinās, ka mēs saņemam tikai tās rindas, kas sākas ar UUID.

                  $ awk '/^UUID/ {print $1}' /etc/fstab

                  Tas ierobežo izvadi līdz pirmajam laukam. Tātad mēs iegūstam tikai UUID numurus.

                  35. Izdrukājiet Linux kodola attēla versiju


                  Tiek izmantoti dažādi Linux kodola attēli dažādi Linux izplatījumi . Mēs varam viegli izdrukāt precīzu kodola attēlu, uz kura balstās mūsu sistēma, izmantojot awk. Pārbaudiet šo komandu, lai redzētu, kā tas darbojas kopumā.

                  $ uname -a | awk '{print $3}'

                  Mēs vispirms esam izdevuši komandu uname ar -uz opciju un pēc tam pārsūtīja šos datus uz awk. Tad mēs esam ieguvuši kodola attēla versijas informāciju, izmantojot awk.

                  36. Pievienojiet rindu numurus pirms rindām


                  Lietotāji diezgan bieži var saskarties ar teksta failiem, kas nesatur rindu numurus. Par laimi, jūs varat viegli pievienot rindu numurus failam, izmantojot Linux komandu awk. Rūpīgi apskatiet zemāk redzamo piemēru, lai redzētu, kā tas darbojas reālajā dzīvē.

                  $ awk '{ print FNR '. ' $0 ;next}{print}' test.txt

                  Iepriekš minētā komanda pievienos rindas numuru pirms katras mūsu test.txt atsauces faila rindas. Lai to novērstu, tas izmanto iebūvēto awk mainīgo FNR.

                  pievienojiet rindu numurus, izmantojot komandu awk

                  37. Izdrukājiet failu pēc satura kārtošanas


                  Mēs varam arī izmantot awk, lai izdrukātu sakārtotu visu rindu sarakstu. Šīs komandas drukā visu mūsu test.txt valstu nosaukumu sakārtotā secībā.

                  $ awk -F ':' '{ print $1 }' test.txt | sort

                  Nākamā komanda drukās visu lietotāju pieteikšanās vārdu no /etc/passwd failu.

                  $ awk -F ':' '{ print $1 }' /etc/passwd | sort

                  Jūs varat viegli mainīt kārtošanas kārtību, mainot kārtošanas komandu.

                  38. Izdrukājiet rokasgrāmatas lapu


                  Rokasgrāmatas lapā ir detalizēta informācija par komandu awk, kā arī visas pieejamās iespējas. Tas ir ārkārtīgi svarīgi cilvēkiem, kuri vēlas rūpīgi apgūt awk komandu.

                  $ man awk

                  Ja vēlaties apgūt sarežģītas awk funkcijas, tas jums ļoti palīdzēs. Iepazīstieties ar šo dokumentāciju ikreiz, kad esat saskāries ar problēmu.

                  39. Izdrukājiet palīdzības lapu


                  Palīdzības lapā ir apkopota informācija par visiem iespējamiem komandrindas argumentiem. Varat izsaukt palīdzības ceļvedi, lai iegūtu awk, izmantojot vienu no šīm komandām.

                  $ awk -h $ awk --help

                  Skatiet šo lapu, ja vēlaties ātri apskatīt visas pieejamās awk iespējas.

                  40. Informācija par drukas versiju


                  Versijas informācija sniedz mums informāciju par programmu veidošanu. Awk versijas lapā ir tāda informācija kā autortiesības, apkopošanas rīki utt. Šo informāciju varat skatīt, izmantojot vienu no šīm awk komandām.

                  $ awk -V $ awk --version

                  Beigu domas


                  Komanda awk operētājsistēmā Linux ļauj mums veikt visu veidu lietas, tostarp failu apstrādi un sistēmas uzturēšanu. Tas nodrošina daudzveidīgu darbību klāstu, lai diezgan viegli tiktu galā ar ikdienas skaitļošanas uzdevumiem. Mūsu redaktori ir apkopojuši šo rokasgrāmatu ar 40 noderīgām awk komandām, kuras var izmantot teksta manipulācijām vai administrēšanai. Tā kā AWK pati par sevi ir pilnvērtīga programmēšanas valoda, ir vairāki veidi, kā veikt vienu un to pašu darbu. Tāpēc nebrīnieties, kāpēc mēs dažas lietas darām citādi. Jūs vienmēr varat apkopot savas receptes, pamatojoties uz savu prasmju kopumu un pieredzi. Ja jums ir kādi jautājumi, atstājiet mums savas domas.

                  • Tagi
                  • Programmēšanas rīki
                  • Sistēmas utilītas rīki
                  Kopīgot Facebook Twitter Pinterest WhatsApp ReddIt Telegramma Viber

                    7 KOMENTĀRI

                    1. Ramesh 2020. gada 24. aprīlis plkst. 07:48

                      Kas ir labākais sed vai awk?

                      Atbildēt
                      • lauhub 2021. gada 6. janvāris 04:41

                        Abi ir labākie:

                        - sed ir noderīgs vienkāršiem nomaiņas/izdevuma uzdevumiem, un tam ir daži ierobežojumi sarežģītu uzdevumu programmēšanai (lai gan pieredzējuši lietotāji var darīt daudzas lietas)

                        - awk ir jābūt daudzpusīgākam, lai veiktu vienkāršus uzdevumus, bet ļauj sarežģītākām programmām izmantot sarežģītākas datu struktūras.

                        Jebkurā gadījumā viss ir atkarīgs no jūsu vajadzībām un zināšanām par šiem rīkiem

                        Atbildēt
                      • DC 2021. gada 16. jūlijs plkst. 09:17

                        Abi ir funkcionāli atšķirīgi. sed ir ierobežota funkcionalitāte. Parasti izmanto, lai atrastu un aizstātu virkņu redaktoru.
                        awk tiek izmantots datu manipulācijām un nodrošina vairāk programmēšanas funkcionalitātes

                        Atbildēt
                    2. Ahmeds 2020. gada 16. aprīlis plkst. 13:24

                      Sveiki,
                      Piemēri ir lieliski, taču būtu bijis labāk, ja jūs būtu ievietojis izlaidi arī pēc piemēra.

                      Atbildēt
                      • Rubaiat Hossain 2020. gada 18. aprīlis plkst. 01:28

                        Paldies, Ahmed, ka tu paliec pie mums. Tomēr mēs baidāmies, ka katrai komandai pievienojot atsevišķus attēlus, ceļvedis būs ārkārtīgi garš, un tāpēc lietotāji, kas to lasa no maza ekrāna ierīcēm, piemēram, tālruņiem/planšetdatoriem, var saskarties ar nevēlamu ritināšanas pieredzi.

                        Turklāt mēs mudinām mūsu lasītājus uzlabot šīs awk komandas Linux, atrodoties ceļā, un izmēģināt tās no pirmavotiem. Tādā veidā jūs tos apgūsit ātrāk.

                        Atbildēt
                    3. Stefans 2020. gada 6. aprīlī plkst. 10:54

                      Lieliski piemēri. Paldies par šo

                      Atbildēt
                    4. Kārans Grovers 2020. gada 2. aprīlī plkst. 17:29

                      jauki awk piemēri

                      Atbildēt

                    ATSTĀJ ATBILDI Atcelt atbildi

                    Komentārs: Lūdzu, ievadiet savu komentāru! Vārds:* Lūdzu, ievadiet savu vārdu šeit E -pasts:* Jūs esat ievadījis nepareizu e -pasta adresi! Lūdzu, šeit ievadiet savu e -pasta adresi Vietne:

                    Saglabājiet manu vārdu, e -pastu un vietni šajā pārlūkprogrammā, lai nākamreiz komentētu.

                    spot_img

                    Jaunākā ziņa

                    Android

                    10 labākās sejas maiņas lietotnes Android un iOS ierīcēm

                    Windows OS

                    Kā ieplānot Windows 10, lai automātiski iztukšotu atkritni

                    Android

                    10 labākās rēķinu izrakstīšanas lietotnes Android ierīcei, lai ātri samaksātu

                    Windows OS

                    10 labākās GPU etalona programmatūras jūsu datoram

                    Vajag izlasīt

                    Linux

                    Kā instalēt un konfigurēt XAMPP operētājsistēmā Ubuntu Linux

                    Linux

                    Ubuntu Communitheme - Jauna Ubuntu kopienas tēma

                    Linux

                    Kā instalēt programmatūru no avota koda savā Linux sistēmā

                    Linux

                    RedNotebook - mūsdienīga un bezmaksas dienasgrāmatu un žurnālu programmatūra Linux

                    Saistītā ziņa

                    Kā instalēt un iestatīt kabīnes tīmekļa konsoli Linux sistēmā

                    Kā instalēt un iestatīt Yii PHP Framework Ubuntu Linux

                    Kā labot W: dažiem indeksa failiem neizdevās lejupielādēt kļūdu Ubuntu Linux

                    Kā instalēt un iestatīt 1Password Linux darbvirsmā

                    Kā instalēt jaunāko GNU Nano teksta redaktoru Linux darbvirsmā

                    Kā instalēt jaunu relikvijas infrastruktūras aģentu Linux sistēmā

                    'x1B[m';next;}{print}'

                    Šī komanda ir noderīga, ja vēlaties precīzi noteikt kompilatora brīdinājumus. Šo komandu varat izmantot ar jebkuru kompilatoru, izņemot gcc, vienkārši mainiet modeli /: brīdinājums: /, lai atspoguļotu konkrēto kompilatoru.

                    34. Izdrukājiet failu sistēmas UUID informāciju


                    UUID vai Universāli unikāls identifikators ir skaitlis, ko var izmantot, lai identificētu tādus resursus kā Linux failu sistēma . Mēs varam vienkārši izdrukāt mūsu failu sistēmas UUID informāciju, izmantojot šādu Linux awk komandu.

                    $ awk '/UUID/ {print 
                    Mājas A-Z komandas 40 Praktiska un noderīga awk komanda Linux un BSD AutorsMehedi Hasan InA-Z komandasPiedāvātie 1271 7

                    SATURS

                    1. Izpratne par AWK programmām
                    2. Praktiski awk komandu piemēri Linux
                      1. 1. Izdrukājiet specifiskus laukus no teksta izvades
                      2. 2. Drukājiet vairākus laukus no teksta izvades
                      3. 3. Izmantojiet BEGIN paziņojumus
                      4. 4. Izmantojiet END paziņojumus
                      5. 5. Meklēšana, izmantojot modeļus
                      6. 6. Izņemiet informāciju no failiem
                      7. 7. Izlasiet AWK skriptu no avota faila
                      8. 8. Iestatiet ievades lauka atdalītāju
                      9. 9. Drukāt informāciju, pamatojoties uz stāvokli
                      10. 10. Drukājiet informāciju, salīdzinot regulārās izteiksmes
                      11. 11. Saskaitiet kopējo ievadīto rindu skaitu
                      12. 12. Iestatiet izvades lauka atdalītāju
                      13. 13. If Construct izmantošana
                      14. 14. If-Else Constructs izmantošana
                      15. 15. Iestatiet lauka platumu
                      16. 16. Iestatiet ierakstu atdalītāju
                      17. 17. Drukas vides mainīgie
                      18. 18. Izlaist dažus laukus no izvades
                      19. 19. Noņemiet tukšās līnijas
                      20. 20. Noņemiet beigu atstarpes
                      21. 21. Pārbaudiet lauku skaitu katrā rindā
                      22. 22. Pārbaudiet pašreizējo faila nosaukumu
                      23. 23. Pārbaudiet apstrādāto ierakstu skaitu
                      24. 24. Izdrukājiet ierakstu kopējo rakstzīmju skaitu
                      25. 25. Izdrukājiet visas līnijas ilgāk par noteikto garumu
                      26. 26. Izdrukājiet rindu, rakstzīmju un vārdu skaitu
                      27. 27. Aprēķiniet vārdu biežumu
                      28. 28. Pārdēvēt failus, izmantojot AWK
                      29. 29. Izdrukājiet skaitļa kvadrātsakni
                      30. 30. Izdrukājiet skaitļa logaritmu
                      31. 31. Izdrukājiet skaitļa eksponenciālu
                      32. 32. Izveidojiet nejaušus skaitļus, izmantojot AWK
                      33. 33. Krāsu sastādītāja brīdinājumi sarkanā krāsā
                      34. 34. Izdrukājiet failu sistēmas UUID informāciju
                      35. 35. Izdrukājiet Linux kodola attēla versiju
                      36. 36. Pievienojiet rindu numurus pirms rindām
                      37. 37. Izdrukājiet failu pēc satura kārtošanas
                      38. 38. Izdrukājiet rokasgrāmatas lapu
                      39. 39. Izdrukājiet palīdzības lapu
                      40. 40. Informācija par drukas versiju
                    3. Beigu domas

                    AWK ir spēcīga> pilnvērtīga programmēšanas valoda . AWK savu nosaukumu ieguvis no tā autoru iniciāļiem - Aho, Veinbergera un Kernighana. Komanda awk Linux un citās Unix sistēmās izsauc tulku, kas palaiž AWK skriptus. Nesenās sistēmās pastāv vairākas awk ieviešanas, piemēram, gawk (GNU awk), mawk (Minimal awk) un nawk (New awk). Apskatiet tālāk sniegtos piemērus, ja vēlaties apgūt awk.

                    Izpratne par AWK programmām


                    Programmas, kas rakstītas awk, sastāv no noteikumiem, kas ir vienkārši modeļu un darbību pāris. Modeļi ir sagrupēti iekavās {}, un darbības daļa tiek aktivizēta ikreiz, kad awk atrod tekstam atbilstošus tekstus. Lai gan awk tika izstrādāts vienas līnijas rakstīšanai, pieredzējuši lietotāji ar to var viegli rakstīt sarežģītus skriptus.

                    awk komanda Linux

                    AWK programmas ir ļoti noderīgas liela mēroga failu apstrādei. Tas identificē teksta laukus, izmantojot speciālās rakstzīmes un atdalītājus. Tā piedāvā arī augsta līmeņa programmēšanas konstrukcijas, piemēram, masīvus un cilpas. Tāpēc ir ļoti iespējams rakstīt stabilas programmas, izmantojot vienkāršu awk.

                    Praktiski awk komandu piemēri Linux


                    Administratori parasti izmanto awk datu iegūšanai un ziņošanai kopā ar cita veida failu manipulācijām. Zemāk mēs detalizētāk apspriedām awk. Rūpīgi izpildiet komandas un izmēģiniet tās savā terminālī, lai iegūtu pilnīgu izpratni.

                    1. Izdrukājiet specifiskus laukus no teksta izvades


                    Visvairāk plaši izmantotas Linux komandas parādīt savus rezultātus, izmantojot dažādus laukus. Parasti mēs izmantojam Linux izgriešanas komandu, lai no šādiem datiem iegūtu noteiktu lauku. Tomēr zemāk esošā komanda parāda, kā to izdarīt, izmantojot komandu awk.

                    $ who | awk '{print $1}'

                    Šī komanda parādīs tikai pirmo lauku no komandas who izvades. Tātad jūs vienkārši iegūsit visu pašlaik reģistrēto lietotāju lietotājvārdus. Šeit, $ 1 apzīmē pirmo lauku. Jums ir jāizmanto $ N ja vēlaties iegūt N-to lauku.

                    2. Drukājiet vairākus laukus no teksta izvades


                    Awk tulks ļauj mums izdrukāt vēlamo lauku skaitu. Tālāk sniegtajos piemēros ir parādīts, kā iegūt pirmos divus laukus no komandas who izvades.

                    $ who | awk '{print $1, $2}'

                    Varat arī kontrolēt izvades lauku secību. Šajā piemērā vispirms tiek parādīta otrā sleja, ko izveidojusi komanda who, un pēc tam pirmā kolonna otrajā laukā.

                    $ who | awk '{print $2, $1}'

                    Vienkārši atstājiet laukā parametrus ( $ N ), lai parādītu visus datus.

                    3. Izmantojiet BEGIN paziņojumus


                    BEGIN paziņojums ļauj lietotājiem izvadē izdrukāt zināmu informāciju. To parasti izmanto awk ģenerēto izejas datu formatēšanai. Šī paziņojuma sintakse ir parādīta zemāk.

                    BEGIN { Actions} {ACTION}

                    Darbības, kas veido sadaļu SĀKT, vienmēr tiek aktivizētas. Tad awk izlasa atlikušās rindas pa vienai un redz, vai kaut kas ir jādara.

                    $ who | awk 'BEGIN {print 'User	From'} {print $1, $2}'

                    Iepriekš minētā komanda iezīmēs divus izvades laukus, kas iegūti no komandas izvades.

                    4. Izmantojiet END paziņojumus


                    Varat arī izmantot paziņojumu END, lai pārliecinātos, ka noteiktas darbības vienmēr tiek veiktas jūsu darbības beigās. Vienkārši ievietojiet sadaļu END pēc galvenā darbību kopuma.

                    $ who | awk 'BEGIN {print 'User	From'} {print $1, $2} END {print '--COMPLETED--'}'

                    Iepriekš minētā komanda pievienos norādīto virkni izvades beigās.

                    5. Meklēšana, izmantojot modeļus


                    Liela daļa awk darbu ir saistīta ar modeļu saskaņošanu un regulāro izteiksmi. Kā mēs jau esam apsprieduši, awk meklē modeļus katrā ievades rindā un veic darbību tikai tad, kad tiek aktivizēta atbilstība. Mūsu iepriekšējie noteikumi sastāvēja tikai no darbībām. Zemāk mēs esam ilustrējuši modeļu atbilstības pamatus, izmantojot Linux komandu awk.

                    $ who | awk '/mary/ {print}'

                    Šī komanda redzēs, vai lietotājs Marija pašlaik ir pieteicies vai nē. Ja tiks atrasta atbilstība, tā izvadīs visu rindu.

                    6. Izņemiet informāciju no failiem


                    Komanda awk ļoti labi darbojas ar failiem, un to var izmantot sarežģītiem failu apstrādes uzdevumiem. Šī komanda parāda, kā awk apstrādā failus.

                    $ awk '/hello/ {print}' /usr/share/dict/american-english

                    Šī komanda meklē modeli “sveiki” amerikāņu-angļu vārdnīcas failā. Tas ir pieejams lielākajā daļā Linux balstītas izplatīšanas . Tādējādi šajā failā varat viegli izmēģināt awk programmas.

                    awk modeļa meklēšana

                    7. Izlasiet AWK skriptu no avota faila


                    Lai gan viena līnija programmu rakstīšana ir noderīga, jūs varat arī rakstīt lielas programmas, pilnībā izmantojot awk. Jūs vēlaties tos saglabāt un palaist programmu, izmantojot avota failu.

                    $ awk -f script-file $ awk --file script-file

                    The -f vai - fails opcija ļauj mums norādīt programmas failu. Tomēr jums nav jāizmanto pēdiņas (‘’) skripta faila iekšienē, jo Linux apvalks šādā veidā neskaidros programmas kodu.

                    8. Iestatiet ievades lauka atdalītāju


                    Lauku atdalītājs ir norobežotājs, kas sadala ievades ierakstu. Mēs varam viegli norādīt lauku atdalītājus awk, izmantojot -F vai -lauku atdalītājs iespēja. Pārbaudiet zemāk esošās komandas, lai redzētu, kā tas darbojas.

                    $ echo 'This-is-a-simple-example' | awk -F - ' {print $1} ' $ echo 'This-is-a-simple-example' | awk --field-separator - ' {print $1} '

                    Tas darbojas vienādi, ja Linux izmanto skripta failus, nevis vienu līniju awk komandu.

                    9. Drukāt informāciju, pamatojoties uz stāvokli


                    Esam apsprieduši Linux izgriešanas komanda iepriekšējā ceļvedī. Tagad mēs parādīsim, kā iegūt informāciju, izmantojot awk, tikai tad, ja ir noteikti kritēriji. Mēs izmantosim to pašu testa failu, ko izmantojām šajā rokasgrāmatā. Tāpēc dodieties tur un izveidojiet kopiju test.txt failu.

                    $ awk '$4 > 50' test.txt

                    Šī komanda izdrukās visas valstis no faila test.txt, kurā ir vairāk nekā 50 miljoni iedzīvotāju.

                    10. Drukājiet informāciju, salīdzinot regulārās izteiksmes


                    Šī awk komanda pārbauda, ​​vai jebkuras rindas trešais lauks satur rakstu “Lira”, un, ja tiek atrasta atbilstība, izdrukā visu rindu. Mēs atkal izmantojam failu test.txt, ko izmanto, lai ilustrētu Linux izgriešanas komanda . Tāpēc pirms turpināt, pārliecinieties, vai esat ieguvis šo failu.

                    $ awk '$3 ~ /Lira/' test.txt

                    Ja vēlaties, varat drukāt tikai noteiktu daļu no jebkuras spēles.

                    11. Saskaitiet kopējo ievadīto rindu skaitu


                    Komandai awk ir daudz speciālu mainīgo, kas ļauj mums viegli veikt daudzas uzlabotas lietas. Viens no šādiem mainīgajiem ir NR, kas satur pašreizējo rindas numuru.

                    $ awk 'END {print NR} ' test.txt

                    Šī komanda izvadīs, cik rindu ir mūsu failā test.txt. Tas vispirms atkārtojas pa katru rindu, un, kad tas ir sasniedzis END, tas izdrukās NR vērtību, kas šajā gadījumā satur kopējo rindu skaitu.

                    12. Iestatiet izvades lauka atdalītāju


                    Iepriekš mēs esam parādījuši, kā atlasīt ievades lauku atdalītājus, izmantojot -F vai -lauku atdalītājs iespēja. Komanda awk arī ļauj mums norādīt izvades lauku atdalītāju. Zemāk redzamais piemērs to parāda, izmantojot praktisku piemēru.

                    $ date | awk 'OFS='-' {print$2,$3,$6}'

                    Šī komanda izdrukā pašreizējo datumu, izmantojot formātu dd-mm-yy. Palaidiet datuma programmu bez awk, lai redzētu, kā izskatās noklusējuma izvade.

                    13. If Construct izmantošana


                    Tāpat kā citi populāras programmēšanas valodas , awk arī nodrošina lietotājus ar if-else konstrukcijām. Ja paziņojumam awk ir šāda sintakse.

                    if (expression) { first_action second_action }

                    Atbilstošās darbības tiek veiktas tikai tad, ja nosacījuma izteiksme ir patiesa. Zemāk redzamais piemērs to parāda, izmantojot mūsu atsauces failu test.txt .

                    $ awk '{ if ($4>100) print }' test.txt

                    Jums nav stingri jāuztur ievilkums.

                    14. If-Else Constructs izmantošana


                    Izmantojot zemāk esošo sintaksi, varat izveidot noderīgas trepes. Tie ir noderīgi, izstrādājot sarežģītus awk skriptus, kas attiecas uz dinamiskiem datiem.

                    if (expression) first_action else second_action
                    $ awk '{ if ($4>100) print; else print }' test.txt

                    Iepriekš minētā komanda drukās visu atsauces failu, jo ceturtais lauks katrai rindai nav lielāks par 100.

                    15. Iestatiet lauka platumu


                    Dažreiz ievades dati ir diezgan netīri, un lietotājiem var būt grūti tos vizualizēt savos pārskatos. Par laimi, awk nodrošina jaudīgu iebūvētu mainīgo FIELDWIDTHS, kas ļauj mums definēt ar atstarpēm atdalītu platumu sarakstu.

                    $ echo 5675784464657 | awk 'BEGIN {FIELDWIDTHS= '3 4 5'} {print $1, $2, $3}'

                    Tas ir ļoti noderīgi, analizējot izkliedētos datus, jo mēs varam kontrolēt izvades lauka platumu tieši tā, kā vēlamies.

                    lauka platums awk

                    16. Iestatiet ierakstu atdalītāju


                    RS vai ierakstu atdalītājs ir vēl viens iebūvēts mainīgais, kas ļauj mums norādīt, kā ieraksti tiek atdalīti. Vispirms izveidosim failu, kas parādīs šī awk mainīgā darbību.

                    $ cat new.txt Melinda James 23 New Hampshire (222) 466-1234 Daniel James 99 Phonenix Road (322) 677-3412
                    $ awk 'BEGIN{FS='
                    '; RS=''} {print $1,$3}' new.txt

                    Šī komanda parsēs dokumentu un izslēgs abu personu vārdu un adresi.

                    17. Drukas vides mainīgie


                    Komanda awk Linux ļauj mums viegli izdrukāt vides mainīgos, izmantojot mainīgo ENVIRON. Zemāk esošā komanda parāda, kā to izmantot, lai izdrukātu mainīgā PATH saturu.

                    $ awk 'BEGIN{ print ENVIRON['PATH'] }'

                    Varat izdrukāt jebkura vides mainīgā saturu, aizstājot mainīgā ENVIRON argumentu. Zemāk esošā komanda izdrukā vides mainīgā HOME vērtību.

                    $ awk 'BEGIN{ print ENVIRON['HOME'] }'

                    18. Izlaist dažus laukus no izvades


                    Komanda awk ļauj mums izlaist noteiktas rindas no mūsu izvades. Šī komanda to parādīs, izmantojot mūsu atsauces failu test.txt .

                    $ awk -F':' '{$2=''; print}' test.txt

                    Šī komanda izlaidīs mūsu faila otro kolonnu, kurā ir katras valsts galvaspilsētas nosaukums. Varat arī izlaist vairākus laukus, kā parādīts nākamajā komandā.

                    $ awk -F':' '{$2='';$3='';print}' test.txt

                    19. Noņemiet tukšās līnijas


                    Dažreiz dati var saturēt pārāk daudz tukšu rindu. Jūs varat izmantot komandu awk, lai diezgan viegli noņemtu tukšās rindas. Pārbaudiet nākamo komandu, lai redzētu, kā tas darbojas praksē.

                    $ awk '/^[ 	]*$/{next}{print}' new.txt

                    Mēs esam noņēmuši visas tukšās rindas no faila new.txt, izmantojot vienkāršu regulāro izteiksmi un iebūvēto awk, ko sauc par nākamo.

                    20. Noņemiet beigu atstarpes


                    Daudzu Linux komandu izvade satur beigu atstarpes. Mēs varam izmantot komandu awk operētājsistēmā Linux, lai noņemtu tādas atstarpes kā atstarpes un cilnes. Pārbaudiet zemāk esošo komandu, lai uzzinātu, kā risināt šādas problēmas, izmantojot awk.

                    $ awk '{sub(/[ 	]*$/, '');print}' new.txt test.txt

                    Pievienojiet mūsu atsauces failiem dažas atstarpes un pārbaudiet, vai awk tās ir veiksmīgi noņemtas. Tas manā mašīnā to izdarīja veiksmīgi.

                    21. Pārbaudiet lauku skaitu katrā rindā


                    Mēs varam viegli pārbaudīt, cik lauku ir rindā, izmantojot vienkāršu awk one-liner. Ir daudz veidu, kā to izdarīt, taču šim uzdevumam mēs izmantosim dažus no awk iebūvētajiem mainīgajiem. Mainīgais NR dod mums rindas numuru, un NF mainīgais nodrošina lauku skaitu.

                    $ awk '{print NR,'-->',NF}' test.txt

                    Tagad mēs varam apstiprināt, cik daudz lauku ir katrā rindā test.txt dokuments. Tā kā katra šī faila rinda satur 5 laukus, mēs esam pārliecināti, ka komanda darbojas, kā paredzēts.

                    22. Pārbaudiet pašreizējo faila nosaukumu


                    Awk mainīgais FILENAME tiek izmantots pašreizējā ievades faila nosaukuma pārbaudei. Mēs demonstrējam, kā tas darbojas, izmantojot vienkāršu piemēru. Tomēr tas var būt noderīgi situācijās, kad faila nosaukums nav skaidri zināms vai ja ir vairāk nekā viens ievades fails.

                    $ awk '{print FILENAME}' test.txt $ awk '{print FILENAME}' test.txt new.txt

                    Iepriekš minētās komandas izdrukā faila nosaukumu awk, ar kuru strādā, katru reizi, kad tiek apstrādāta jauna ievades failu rinda.

                    23. Pārbaudiet apstrādāto ierakstu skaitu


                    Šis piemērs parādīs, kā mēs varam pārbaudīt ierakstu skaitu, ko apstrādā komanda awk. Tā kā liels skaits Linux sistēmas administratoru pārskatu ģenerēšanai izmanto awk, tas viņiem ir ļoti noderīgi.

                    $ awk '{print 'Processing Record - ',NR;} END {print '
                    Total Records Processed:', NR;}' test.txt

                    Es bieži izmantoju šo awk fragmentu, lai iegūtu skaidru pārskatu par savām darbībām. Jūs varat to viegli pielāgot, lai pielāgotos jaunām idejām vai darbībām.

                    apstrādāto rindu skaits awk

                    24. Izdrukājiet ierakstu kopējo rakstzīmju skaitu


                    Awk valoda nodrošina ērtu funkciju garums (), kas norāda, cik rakstzīmju ir ierakstā. Tas ir ļoti noderīgi vairākos scenārijos. Ātri apskatiet šo piemēru, lai redzētu, kā tas darbojas.

                    $ echo 'A random text string...' | awk '{ print length($0); }'
                    $ awk '{ print length($0); }' /etc/passwd

                    Iepriekš minētā komanda drukās kopējo rakstzīmju skaitu katrā ievades virknes vai faila rindā.

                    25. Izdrukājiet visas līnijas ilgāk par noteikto garumu


                    Iepriekšminētajai komandai mēs varam pievienot dažus nosacījumus un likt tai drukāt tikai tās rindas, kas ir lielākas par iepriekš noteiktu garumu. Tas ir noderīgi, ja jums jau ir priekšstats par konkrēta ieraksta garumu.

                    $ echo 'A random text string...' | awk 'length($0) > 10'
                    $ awk '{ length($0) > 5; }' /etc/passwd

                    Jūs varat izmantot vairāk iespēju un/vai argumentu, lai pielāgotu komandu, pamatojoties uz jūsu prasībām.

                    26. Izdrukājiet rindu, rakstzīmju un vārdu skaitu


                    Šī Linux komanda awk izdrukā rindu, rakstzīmju un vārdu skaitu noteiktā ievadē. Šīs darbības veikšanai tiek izmantots mainīgais NR, kā arī dažas pamata aritmētikas.

                    $ echo 'This is a input line...' | awk '{ w += NF; c += length + 1 } END { print NR, w, c }'

                    Tas parāda, ka ievades virknē ir 1 rinda, 5 vārdi un tieši 24 rakstzīmes.

                    27. Aprēķiniet vārdu biežumu


                    Mēs varam apvienot asociatīvos masīvus un for ciklu in awk, lai aprēķinātu dokumenta vārdu biežumu. Šī komanda var šķist nedaudz sarežģīta, taču tā ir diezgan vienkārša, kad skaidri saprotat pamatkonstrukcijas.

                    $ awk 'BEGIN {FS='[^a-zA-Z]+' } { for (i=1; i<=NF; i++) words[tolower($i)]++ } END { for (i in words) print i, words[i] }' test.txt

                    Ja jums ir problēmas ar vienas līnijas fragmentu, nokopējiet šo kodu jaunā failā un palaidiet to, izmantojot avotu.

                    $ cat > frequency.awk BEGIN { FS='[^a-zA-Z]+' } { for (i=1; i<=NF; i++) words[tolower($i)]++ } END { for (i in words) print i, words[i] }

                    Pēc tam palaidiet to, izmantojot -f iespēja.

                    $ awk -f frequency.awk test.txt

                    28. Pārdēvēt failus, izmantojot AWK


                    Komandu awk var izmantot, lai pārdēvētu visus failus, kas atbilst noteiktiem kritērijiem. Šī komanda parāda, kā izmantot awk, lai pārdēvētu visus direktorijā esošos .MP3 failus uz .mp3 failiem.

                    $ touch {a,b,c,d,e}.MP3 $ ls *.MP3 | awk '{ printf('mv '%s' '%s'
                    ', $0, tolower($0)) }' $ ls *.MP3 | awk '{ printf('mv '%s' '%s'
                    ', $0, tolower($0)) }' | sh

                    Pirmkārt, mēs izveidojām dažus demonstrācijas failus ar paplašinājumu .MP3. Otrā komanda parāda lietotājam, kas notiek, ja pārdēvēšana ir veiksmīga. Visbeidzot, pēdējā komanda pārdēvē operāciju, izmantojot Linux komandu mv.

                    29. Izdrukājiet skaitļa kvadrātsakni


                    AWK piedāvā vairākas iebūvētas funkcijas ciparu manipulēšanai. Viens no tiem ir funkcija sqrt (). Tā ir C līdzīga funkcija, kas atgriež dotā skaitļa kvadrātsakni. Ātri apskatiet nākamo piemēru, lai redzētu, kā tas darbojas kopumā.

                    $ awk 'BEGIN{ print sqrt(36); print sqrt(0); print sqrt(-16) }'

                    Tā kā jūs nevarat noteikt negatīvā skaitļa kvadrātsakni, izvadē sqrt (-12) vietā tiks parādīts īpašs atslēgvārds ar nosaukumu “nan”.

                    sqrt funkcija Linux awk komandā

                    30. Izdrukājiet skaitļa logaritmu


                    Funkcijas žurnāls awk () nodrošina skaitļa dabisko logaritmu. Tomēr tas darbosies tikai ar pozitīviem skaitļiem, tāpēc ņemiet vērā lietotāju ievades apstiprināšanu. Pretējā gadījumā kāds var pārtraukt jūsu awk programmas un iegūt priviliģētu piekļuvi sistēmas resursiem.

                    $ awk 'BEGIN{ print log(36); print log(0); print log(-16) }'

                    Jums vajadzētu redzēt logaritmu 36 un pārbaudīt, vai logaritms 0 ir bezgalība, un negatīvās vērtības žurnāls ir “Nav skaitlis” vai nan.

                    31. Izdrukājiet skaitļa eksponenciālu


                    Eksponenciālais os a skaitlis n nodrošina e^n vērtību. To parasti izmanto awk skriptos, kas nodarbojas ar lieliem cipariem vai sarežģītu aritmētisko loģiku. Mēs varam ģenerēt skaitļa eksponenciālu, izmantojot iebūvēto awk funkciju exp ().

                    $ awk 'BEGIN{ print exp(30); print log(0); print exp(-16) }'

                    Tomēr awk nevar aprēķināt eksponenciālu lieliem skaitļiem. Jums vajadzētu veikt šādus aprēķinus, izmantojot zema līmeņa programmēšanas valodas, piemēram, C, un norādīt vērtību saviem awk skriptiem.

                    32. Izveidojiet nejaušus skaitļus, izmantojot AWK


                    Mēs varam izmantot komandu awk Linux, lai ģenerētu nejaušus skaitļus. Šie skaitļi būs diapazonā no 0 līdz 1, bet nekad 0 vai 1. Jūs varat reizināt fiksētu vērtību ar iegūto skaitli, lai iegūtu lielāku izlases vērtību.

                    $ awk 'BEGIN{ print rand(); print rand()*99 }'

                    Funkcijai rand () nav nepieciešami argumenti. Turklāt šīs funkcijas radītie skaitļi nav precīzi nejauši, bet drīzāk pseidogadījumi. Turklāt ir diezgan viegli paredzēt šos skaitļus no skriešanas uz skrējienu. Tāpēc jums nevajadzētu paļauties uz tiem, veicot sensitīvus aprēķinus.

                    33. Krāsu sastādītāja brīdinājumi sarkanā krāsā


                    Mūsdienu Linux kompilatori brīdinās, ja jūsu kods nesaglabā valodas standartus vai ja tajā ir kļūdas, kas neaptur programmas izpildi. Šī komanda awk sarkanā krāsā drukās kompilatora ģenerētās brīdinājuma līnijas.

                    $ gcc -Wall main.c |& awk '/: warning:/{print 'x1B[01;31m' $0 'x1B[m';next;}{print}'

                    Šī komanda ir noderīga, ja vēlaties precīzi noteikt kompilatora brīdinājumus. Šo komandu varat izmantot ar jebkuru kompilatoru, izņemot gcc, vienkārši mainiet modeli /: brīdinājums: /, lai atspoguļotu konkrēto kompilatoru.

                    34. Izdrukājiet failu sistēmas UUID informāciju


                    UUID vai Universāli unikāls identifikators ir skaitlis, ko var izmantot, lai identificētu tādus resursus kā Linux failu sistēma . Mēs varam vienkārši izdrukāt mūsu failu sistēmas UUID informāciju, izmantojot šādu Linux awk komandu.

                    $ awk '/UUID/ {print $0}' /etc/fstab

                    Šī komanda meklē tekstu UUID /etc/fstab failu, izmantojot awk modeļus. Tas atgriež komentāru no faila, kas mūs neinteresē. Zemāk esošā komanda nodrošinās, ka mēs saņemam tikai tās rindas, kas sākas ar UUID.

                    $ awk '/^UUID/ {print $1}' /etc/fstab

                    Tas ierobežo izvadi līdz pirmajam laukam. Tātad mēs iegūstam tikai UUID numurus.

                    35. Izdrukājiet Linux kodola attēla versiju


                    Tiek izmantoti dažādi Linux kodola attēli dažādi Linux izplatījumi . Mēs varam viegli izdrukāt precīzu kodola attēlu, uz kura balstās mūsu sistēma, izmantojot awk. Pārbaudiet šo komandu, lai redzētu, kā tas darbojas kopumā.

                    $ uname -a | awk '{print $3}'

                    Mēs vispirms esam izdevuši komandu uname ar -uz opciju un pēc tam pārsūtīja šos datus uz awk. Tad mēs esam ieguvuši kodola attēla versijas informāciju, izmantojot awk.

                    36. Pievienojiet rindu numurus pirms rindām


                    Lietotāji diezgan bieži var saskarties ar teksta failiem, kas nesatur rindu numurus. Par laimi, jūs varat viegli pievienot rindu numurus failam, izmantojot Linux komandu awk. Rūpīgi apskatiet zemāk redzamo piemēru, lai redzētu, kā tas darbojas reālajā dzīvē.

                    $ awk '{ print FNR '. ' $0 ;next}{print}' test.txt

                    Iepriekš minētā komanda pievienos rindas numuru pirms katras mūsu test.txt atsauces faila rindas. Lai to novērstu, tas izmanto iebūvēto awk mainīgo FNR.

                    pievienojiet rindu numurus, izmantojot komandu awk

                    37. Izdrukājiet failu pēc satura kārtošanas


                    Mēs varam arī izmantot awk, lai izdrukātu sakārtotu visu rindu sarakstu. Šīs komandas drukā visu mūsu test.txt valstu nosaukumu sakārtotā secībā.

                    $ awk -F ':' '{ print $1 }' test.txt | sort

                    Nākamā komanda drukās visu lietotāju pieteikšanās vārdu no /etc/passwd failu.

                    $ awk -F ':' '{ print $1 }' /etc/passwd | sort

                    Jūs varat viegli mainīt kārtošanas kārtību, mainot kārtošanas komandu.

                    38. Izdrukājiet rokasgrāmatas lapu


                    Rokasgrāmatas lapā ir detalizēta informācija par komandu awk, kā arī visas pieejamās iespējas. Tas ir ārkārtīgi svarīgi cilvēkiem, kuri vēlas rūpīgi apgūt awk komandu.

                    $ man awk

                    Ja vēlaties apgūt sarežģītas awk funkcijas, tas jums ļoti palīdzēs. Iepazīstieties ar šo dokumentāciju ikreiz, kad esat saskāries ar problēmu.

                    39. Izdrukājiet palīdzības lapu


                    Palīdzības lapā ir apkopota informācija par visiem iespējamiem komandrindas argumentiem. Varat izsaukt palīdzības ceļvedi, lai iegūtu awk, izmantojot vienu no šīm komandām.

                    $ awk -h $ awk --help

                    Skatiet šo lapu, ja vēlaties ātri apskatīt visas pieejamās awk iespējas.

                    40. Informācija par drukas versiju


                    Versijas informācija sniedz mums informāciju par programmu veidošanu. Awk versijas lapā ir tāda informācija kā autortiesības, apkopošanas rīki utt. Šo informāciju varat skatīt, izmantojot vienu no šīm awk komandām.

                    $ awk -V $ awk --version

                    Beigu domas


                    Komanda awk operētājsistēmā Linux ļauj mums veikt visu veidu lietas, tostarp failu apstrādi un sistēmas uzturēšanu. Tas nodrošina daudzveidīgu darbību klāstu, lai diezgan viegli tiktu galā ar ikdienas skaitļošanas uzdevumiem. Mūsu redaktori ir apkopojuši šo rokasgrāmatu ar 40 noderīgām awk komandām, kuras var izmantot teksta manipulācijām vai administrēšanai. Tā kā AWK pati par sevi ir pilnvērtīga programmēšanas valoda, ir vairāki veidi, kā veikt vienu un to pašu darbu. Tāpēc nebrīnieties, kāpēc mēs dažas lietas darām citādi. Jūs vienmēr varat apkopot savas receptes, pamatojoties uz savu prasmju kopumu un pieredzi. Ja jums ir kādi jautājumi, atstājiet mums savas domas.

                    • Tagi
                    • Programmēšanas rīki
                    • Sistēmas utilītas rīki
                    Kopīgot Facebook Twitter Pinterest WhatsApp ReddIt Telegramma Viber

                      7 KOMENTĀRI

                      1. Ramesh 2020. gada 24. aprīlis plkst. 07:48

                        Kas ir labākais sed vai awk?

                        Atbildēt
                        • lauhub 2021. gada 6. janvāris 04:41

                          Abi ir labākie:

                          - sed ir noderīgs vienkāršiem nomaiņas/izdevuma uzdevumiem, un tam ir daži ierobežojumi sarežģītu uzdevumu programmēšanai (lai gan pieredzējuši lietotāji var darīt daudzas lietas)

                          - awk ir jābūt daudzpusīgākam, lai veiktu vienkāršus uzdevumus, bet ļauj sarežģītākām programmām izmantot sarežģītākas datu struktūras.

                          Jebkurā gadījumā viss ir atkarīgs no jūsu vajadzībām un zināšanām par šiem rīkiem

                          Atbildēt
                        • DC 2021. gada 16. jūlijs plkst. 09:17

                          Abi ir funkcionāli atšķirīgi. sed ir ierobežota funkcionalitāte. Parasti izmanto, lai atrastu un aizstātu virkņu redaktoru.
                          awk tiek izmantots datu manipulācijām un nodrošina vairāk programmēšanas funkcionalitātes

                          Atbildēt
                      2. Ahmeds 2020. gada 16. aprīlis plkst. 13:24

                        Sveiki,
                        Piemēri ir lieliski, taču būtu bijis labāk, ja jūs būtu ievietojis izlaidi arī pēc piemēra.

                        Atbildēt
                        • Rubaiat Hossain 2020. gada 18. aprīlis plkst. 01:28

                          Paldies, Ahmed, ka tu paliec pie mums. Tomēr mēs baidāmies, ka katrai komandai pievienojot atsevišķus attēlus, ceļvedis būs ārkārtīgi garš, un tāpēc lietotāji, kas to lasa no maza ekrāna ierīcēm, piemēram, tālruņiem/planšetdatoriem, var saskarties ar nevēlamu ritināšanas pieredzi.

                          Turklāt mēs mudinām mūsu lasītājus uzlabot šīs awk komandas Linux, atrodoties ceļā, un izmēģināt tās no pirmavotiem. Tādā veidā jūs tos apgūsit ātrāk.

                          Atbildēt
                      3. Stefans 2020. gada 6. aprīlī plkst. 10:54

                        Lieliski piemēri. Paldies par šo

                        Atbildēt
                      4. Kārans Grovers 2020. gada 2. aprīlī plkst. 17:29

                        jauki awk piemēri

                        Atbildēt

                      ATSTĀJ ATBILDI Atcelt atbildi

                      Komentārs: Lūdzu, ievadiet savu komentāru! Vārds:* Lūdzu, ievadiet savu vārdu šeit E -pasts:* Jūs esat ievadījis nepareizu e -pasta adresi! Lūdzu, šeit ievadiet savu e -pasta adresi Vietne:

                      Saglabājiet manu vārdu, e -pastu un vietni šajā pārlūkprogrammā, lai nākamreiz komentētu.

                      spot_img

                      Jaunākā ziņa

                      Android

                      10 labākās sejas maiņas lietotnes Android un iOS ierīcēm

                      Windows OS

                      Kā ieplānot Windows 10, lai automātiski iztukšotu atkritni

                      Android

                      10 labākās rēķinu izrakstīšanas lietotnes Android ierīcei, lai ātri samaksātu

                      Windows OS

                      10 labākās GPU etalona programmatūras jūsu datoram

                      Vajag izlasīt

                      Linux

                      Kā instalēt un konfigurēt XAMPP operētājsistēmā Ubuntu Linux

                      Linux

                      Ubuntu Communitheme - Jauna Ubuntu kopienas tēma

                      Linux

                      Kā instalēt programmatūru no avota koda savā Linux sistēmā

                      Linux

                      RedNotebook - mūsdienīga un bezmaksas dienasgrāmatu un žurnālu programmatūra Linux

                      Saistītā ziņa

                      Kā instalēt un iestatīt kabīnes tīmekļa konsoli Linux sistēmā

                      Kā instalēt un iestatīt Yii PHP Framework Ubuntu Linux

                      Kā labot W: dažiem indeksa failiem neizdevās lejupielādēt kļūdu Ubuntu Linux

                      Kā instalēt un iestatīt 1Password Linux darbvirsmā

                      Kā instalēt jaunāko GNU Nano teksta redaktoru Linux darbvirsmā

                      Kā instalēt jaunu relikvijas infrastruktūras aģentu Linux sistēmā

                      }' /etc/fstab

                      Šī komanda meklē tekstu UUID /etc/fstab failu, izmantojot awk modeļus. Tas atgriež komentāru no faila, kas mūs neinteresē. Zemāk esošā komanda nodrošinās, ka mēs saņemam tikai tās rindas, kas sākas ar UUID.

                      $ awk '/^UUID/ {print }' /etc/fstab

                      Tas ierobežo izvadi līdz pirmajam laukam. Tātad mēs iegūstam tikai UUID numurus.

                      35. Izdrukājiet Linux kodola attēla versiju


                      Tiek izmantoti dažādi Linux kodola attēli dažādi Linux izplatījumi . Mēs varam viegli izdrukāt precīzu kodola attēlu, uz kura balstās mūsu sistēma, izmantojot awk. Pārbaudiet šo komandu, lai redzētu, kā tas darbojas kopumā.

                      $ uname -a | awk '{print }'

                      Mēs vispirms esam izdevuši komandu uname ar -uz opciju un pēc tam pārsūtīja šos datus uz awk. Tad mēs esam ieguvuši kodola attēla versijas informāciju, izmantojot awk.

                      36. Pievienojiet rindu numurus pirms rindām


                      Lietotāji diezgan bieži var saskarties ar teksta failiem, kas nesatur rindu numurus. Par laimi, jūs varat viegli pievienot rindu numurus failam, izmantojot Linux komandu awk. Rūpīgi apskatiet zemāk redzamo piemēru, lai redzētu, kā tas darbojas reālajā dzīvē.

                      $ awk '{ print FNR '. ' 
                      Mājas A-Z komandas 40 Praktiska un noderīga awk komanda Linux un BSD AutorsMehedi Hasan InA-Z komandasPiedāvātie 1271 7

                      SATURS

                      1. Izpratne par AWK programmām
                      2. Praktiski awk komandu piemēri Linux
                        1. 1. Izdrukājiet specifiskus laukus no teksta izvades
                        2. 2. Drukājiet vairākus laukus no teksta izvades
                        3. 3. Izmantojiet BEGIN paziņojumus
                        4. 4. Izmantojiet END paziņojumus
                        5. 5. Meklēšana, izmantojot modeļus
                        6. 6. Izņemiet informāciju no failiem
                        7. 7. Izlasiet AWK skriptu no avota faila
                        8. 8. Iestatiet ievades lauka atdalītāju
                        9. 9. Drukāt informāciju, pamatojoties uz stāvokli
                        10. 10. Drukājiet informāciju, salīdzinot regulārās izteiksmes
                        11. 11. Saskaitiet kopējo ievadīto rindu skaitu
                        12. 12. Iestatiet izvades lauka atdalītāju
                        13. 13. If Construct izmantošana
                        14. 14. If-Else Constructs izmantošana
                        15. 15. Iestatiet lauka platumu
                        16. 16. Iestatiet ierakstu atdalītāju
                        17. 17. Drukas vides mainīgie
                        18. 18. Izlaist dažus laukus no izvades
                        19. 19. Noņemiet tukšās līnijas
                        20. 20. Noņemiet beigu atstarpes
                        21. 21. Pārbaudiet lauku skaitu katrā rindā
                        22. 22. Pārbaudiet pašreizējo faila nosaukumu
                        23. 23. Pārbaudiet apstrādāto ierakstu skaitu
                        24. 24. Izdrukājiet ierakstu kopējo rakstzīmju skaitu
                        25. 25. Izdrukājiet visas līnijas ilgāk par noteikto garumu
                        26. 26. Izdrukājiet rindu, rakstzīmju un vārdu skaitu
                        27. 27. Aprēķiniet vārdu biežumu
                        28. 28. Pārdēvēt failus, izmantojot AWK
                        29. 29. Izdrukājiet skaitļa kvadrātsakni
                        30. 30. Izdrukājiet skaitļa logaritmu
                        31. 31. Izdrukājiet skaitļa eksponenciālu
                        32. 32. Izveidojiet nejaušus skaitļus, izmantojot AWK
                        33. 33. Krāsu sastādītāja brīdinājumi sarkanā krāsā
                        34. 34. Izdrukājiet failu sistēmas UUID informāciju
                        35. 35. Izdrukājiet Linux kodola attēla versiju
                        36. 36. Pievienojiet rindu numurus pirms rindām
                        37. 37. Izdrukājiet failu pēc satura kārtošanas
                        38. 38. Izdrukājiet rokasgrāmatas lapu
                        39. 39. Izdrukājiet palīdzības lapu
                        40. 40. Informācija par drukas versiju
                      3. Beigu domas

                      AWK ir spēcīga> pilnvērtīga programmēšanas valoda . AWK savu nosaukumu ieguvis no tā autoru iniciāļiem - Aho, Veinbergera un Kernighana. Komanda awk Linux un citās Unix sistēmās izsauc tulku, kas palaiž AWK skriptus. Nesenās sistēmās pastāv vairākas awk ieviešanas, piemēram, gawk (GNU awk), mawk (Minimal awk) un nawk (New awk). Apskatiet tālāk sniegtos piemērus, ja vēlaties apgūt awk.

                      Izpratne par AWK programmām


                      Programmas, kas rakstītas awk, sastāv no noteikumiem, kas ir vienkārši modeļu un darbību pāris. Modeļi ir sagrupēti iekavās {}, un darbības daļa tiek aktivizēta ikreiz, kad awk atrod tekstam atbilstošus tekstus. Lai gan awk tika izstrādāts vienas līnijas rakstīšanai, pieredzējuši lietotāji ar to var viegli rakstīt sarežģītus skriptus.

                      awk komanda Linux

                      AWK programmas ir ļoti noderīgas liela mēroga failu apstrādei. Tas identificē teksta laukus, izmantojot speciālās rakstzīmes un atdalītājus. Tā piedāvā arī augsta līmeņa programmēšanas konstrukcijas, piemēram, masīvus un cilpas. Tāpēc ir ļoti iespējams rakstīt stabilas programmas, izmantojot vienkāršu awk.

                      Praktiski awk komandu piemēri Linux


                      Administratori parasti izmanto awk datu iegūšanai un ziņošanai kopā ar cita veida failu manipulācijām. Zemāk mēs detalizētāk apspriedām awk. Rūpīgi izpildiet komandas un izmēģiniet tās savā terminālī, lai iegūtu pilnīgu izpratni.

                      1. Izdrukājiet specifiskus laukus no teksta izvades


                      Visvairāk plaši izmantotas Linux komandas parādīt savus rezultātus, izmantojot dažādus laukus. Parasti mēs izmantojam Linux izgriešanas komandu, lai no šādiem datiem iegūtu noteiktu lauku. Tomēr zemāk esošā komanda parāda, kā to izdarīt, izmantojot komandu awk.

                      $ who | awk '{print $1}'

                      Šī komanda parādīs tikai pirmo lauku no komandas who izvades. Tātad jūs vienkārši iegūsit visu pašlaik reģistrēto lietotāju lietotājvārdus. Šeit, $ 1 apzīmē pirmo lauku. Jums ir jāizmanto $ N ja vēlaties iegūt N-to lauku.

                      2. Drukājiet vairākus laukus no teksta izvades


                      Awk tulks ļauj mums izdrukāt vēlamo lauku skaitu. Tālāk sniegtajos piemēros ir parādīts, kā iegūt pirmos divus laukus no komandas who izvades.

                      $ who | awk '{print $1, $2}'

                      Varat arī kontrolēt izvades lauku secību. Šajā piemērā vispirms tiek parādīta otrā sleja, ko izveidojusi komanda who, un pēc tam pirmā kolonna otrajā laukā.

                      $ who | awk '{print $2, $1}'

                      Vienkārši atstājiet laukā parametrus ( $ N ), lai parādītu visus datus.

                      3. Izmantojiet BEGIN paziņojumus


                      BEGIN paziņojums ļauj lietotājiem izvadē izdrukāt zināmu informāciju. To parasti izmanto awk ģenerēto izejas datu formatēšanai. Šī paziņojuma sintakse ir parādīta zemāk.

                      BEGIN { Actions} {ACTION}

                      Darbības, kas veido sadaļu SĀKT, vienmēr tiek aktivizētas. Tad awk izlasa atlikušās rindas pa vienai un redz, vai kaut kas ir jādara.

                      $ who | awk 'BEGIN {print 'User	From'} {print $1, $2}'

                      Iepriekš minētā komanda iezīmēs divus izvades laukus, kas iegūti no komandas izvades.

                      4. Izmantojiet END paziņojumus


                      Varat arī izmantot paziņojumu END, lai pārliecinātos, ka noteiktas darbības vienmēr tiek veiktas jūsu darbības beigās. Vienkārši ievietojiet sadaļu END pēc galvenā darbību kopuma.

                      $ who | awk 'BEGIN {print 'User	From'} {print $1, $2} END {print '--COMPLETED--'}'

                      Iepriekš minētā komanda pievienos norādīto virkni izvades beigās.

                      5. Meklēšana, izmantojot modeļus


                      Liela daļa awk darbu ir saistīta ar modeļu saskaņošanu un regulāro izteiksmi. Kā mēs jau esam apsprieduši, awk meklē modeļus katrā ievades rindā un veic darbību tikai tad, kad tiek aktivizēta atbilstība. Mūsu iepriekšējie noteikumi sastāvēja tikai no darbībām. Zemāk mēs esam ilustrējuši modeļu atbilstības pamatus, izmantojot Linux komandu awk.

                      $ who | awk '/mary/ {print}'

                      Šī komanda redzēs, vai lietotājs Marija pašlaik ir pieteicies vai nē. Ja tiks atrasta atbilstība, tā izvadīs visu rindu.

                      6. Izņemiet informāciju no failiem


                      Komanda awk ļoti labi darbojas ar failiem, un to var izmantot sarežģītiem failu apstrādes uzdevumiem. Šī komanda parāda, kā awk apstrādā failus.

                      $ awk '/hello/ {print}' /usr/share/dict/american-english

                      Šī komanda meklē modeli “sveiki” amerikāņu-angļu vārdnīcas failā. Tas ir pieejams lielākajā daļā Linux balstītas izplatīšanas . Tādējādi šajā failā varat viegli izmēģināt awk programmas.

                      awk modeļa meklēšana

                      7. Izlasiet AWK skriptu no avota faila


                      Lai gan viena līnija programmu rakstīšana ir noderīga, jūs varat arī rakstīt lielas programmas, pilnībā izmantojot awk. Jūs vēlaties tos saglabāt un palaist programmu, izmantojot avota failu.

                      $ awk -f script-file $ awk --file script-file

                      The -f vai - fails opcija ļauj mums norādīt programmas failu. Tomēr jums nav jāizmanto pēdiņas (‘’) skripta faila iekšienē, jo Linux apvalks šādā veidā neskaidros programmas kodu.

                      8. Iestatiet ievades lauka atdalītāju


                      Lauku atdalītājs ir norobežotājs, kas sadala ievades ierakstu. Mēs varam viegli norādīt lauku atdalītājus awk, izmantojot -F vai -lauku atdalītājs iespēja. Pārbaudiet zemāk esošās komandas, lai redzētu, kā tas darbojas.

                      $ echo 'This-is-a-simple-example' | awk -F - ' {print $1} ' $ echo 'This-is-a-simple-example' | awk --field-separator - ' {print $1} '

                      Tas darbojas vienādi, ja Linux izmanto skripta failus, nevis vienu līniju awk komandu.

                      9. Drukāt informāciju, pamatojoties uz stāvokli


                      Esam apsprieduši Linux izgriešanas komanda iepriekšējā ceļvedī. Tagad mēs parādīsim, kā iegūt informāciju, izmantojot awk, tikai tad, ja ir noteikti kritēriji. Mēs izmantosim to pašu testa failu, ko izmantojām šajā rokasgrāmatā. Tāpēc dodieties tur un izveidojiet kopiju test.txt failu.

                      $ awk '$4 > 50' test.txt

                      Šī komanda izdrukās visas valstis no faila test.txt, kurā ir vairāk nekā 50 miljoni iedzīvotāju.

                      10. Drukājiet informāciju, salīdzinot regulārās izteiksmes


                      Šī awk komanda pārbauda, ​​vai jebkuras rindas trešais lauks satur rakstu “Lira”, un, ja tiek atrasta atbilstība, izdrukā visu rindu. Mēs atkal izmantojam failu test.txt, ko izmanto, lai ilustrētu Linux izgriešanas komanda . Tāpēc pirms turpināt, pārliecinieties, vai esat ieguvis šo failu.

                      $ awk '$3 ~ /Lira/' test.txt

                      Ja vēlaties, varat drukāt tikai noteiktu daļu no jebkuras spēles.

                      11. Saskaitiet kopējo ievadīto rindu skaitu


                      Komandai awk ir daudz speciālu mainīgo, kas ļauj mums viegli veikt daudzas uzlabotas lietas. Viens no šādiem mainīgajiem ir NR, kas satur pašreizējo rindas numuru.

                      $ awk 'END {print NR} ' test.txt

                      Šī komanda izvadīs, cik rindu ir mūsu failā test.txt. Tas vispirms atkārtojas pa katru rindu, un, kad tas ir sasniedzis END, tas izdrukās NR vērtību, kas šajā gadījumā satur kopējo rindu skaitu.

                      12. Iestatiet izvades lauka atdalītāju


                      Iepriekš mēs esam parādījuši, kā atlasīt ievades lauku atdalītājus, izmantojot -F vai -lauku atdalītājs iespēja. Komanda awk arī ļauj mums norādīt izvades lauku atdalītāju. Zemāk redzamais piemērs to parāda, izmantojot praktisku piemēru.

                      $ date | awk 'OFS='-' {print$2,$3,$6}'

                      Šī komanda izdrukā pašreizējo datumu, izmantojot formātu dd-mm-yy. Palaidiet datuma programmu bez awk, lai redzētu, kā izskatās noklusējuma izvade.

                      13. If Construct izmantošana


                      Tāpat kā citi populāras programmēšanas valodas , awk arī nodrošina lietotājus ar if-else konstrukcijām. Ja paziņojumam awk ir šāda sintakse.

                      if (expression) { first_action second_action }

                      Atbilstošās darbības tiek veiktas tikai tad, ja nosacījuma izteiksme ir patiesa. Zemāk redzamais piemērs to parāda, izmantojot mūsu atsauces failu test.txt .

                      $ awk '{ if ($4>100) print }' test.txt

                      Jums nav stingri jāuztur ievilkums.

                      14. If-Else Constructs izmantošana


                      Izmantojot zemāk esošo sintaksi, varat izveidot noderīgas trepes. Tie ir noderīgi, izstrādājot sarežģītus awk skriptus, kas attiecas uz dinamiskiem datiem.

                      if (expression) first_action else second_action
                      $ awk '{ if ($4>100) print; else print }' test.txt

                      Iepriekš minētā komanda drukās visu atsauces failu, jo ceturtais lauks katrai rindai nav lielāks par 100.

                      15. Iestatiet lauka platumu


                      Dažreiz ievades dati ir diezgan netīri, un lietotājiem var būt grūti tos vizualizēt savos pārskatos. Par laimi, awk nodrošina jaudīgu iebūvētu mainīgo FIELDWIDTHS, kas ļauj mums definēt ar atstarpēm atdalītu platumu sarakstu.

                      $ echo 5675784464657 | awk 'BEGIN {FIELDWIDTHS= '3 4 5'} {print $1, $2, $3}'

                      Tas ir ļoti noderīgi, analizējot izkliedētos datus, jo mēs varam kontrolēt izvades lauka platumu tieši tā, kā vēlamies.

                      lauka platums awk

                      16. Iestatiet ierakstu atdalītāju


                      RS vai ierakstu atdalītājs ir vēl viens iebūvēts mainīgais, kas ļauj mums norādīt, kā ieraksti tiek atdalīti. Vispirms izveidosim failu, kas parādīs šī awk mainīgā darbību.

                      $ cat new.txt Melinda James 23 New Hampshire (222) 466-1234 Daniel James 99 Phonenix Road (322) 677-3412
                      $ awk 'BEGIN{FS='
                      '; RS=''} {print $1,$3}' new.txt

                      Šī komanda parsēs dokumentu un izslēgs abu personu vārdu un adresi.

                      17. Drukas vides mainīgie


                      Komanda awk Linux ļauj mums viegli izdrukāt vides mainīgos, izmantojot mainīgo ENVIRON. Zemāk esošā komanda parāda, kā to izmantot, lai izdrukātu mainīgā PATH saturu.

                      $ awk 'BEGIN{ print ENVIRON['PATH'] }'

                      Varat izdrukāt jebkura vides mainīgā saturu, aizstājot mainīgā ENVIRON argumentu. Zemāk esošā komanda izdrukā vides mainīgā HOME vērtību.

                      $ awk 'BEGIN{ print ENVIRON['HOME'] }'

                      18. Izlaist dažus laukus no izvades


                      Komanda awk ļauj mums izlaist noteiktas rindas no mūsu izvades. Šī komanda to parādīs, izmantojot mūsu atsauces failu test.txt .

                      $ awk -F':' '{$2=''; print}' test.txt

                      Šī komanda izlaidīs mūsu faila otro kolonnu, kurā ir katras valsts galvaspilsētas nosaukums. Varat arī izlaist vairākus laukus, kā parādīts nākamajā komandā.

                      $ awk -F':' '{$2='';$3='';print}' test.txt

                      19. Noņemiet tukšās līnijas


                      Dažreiz dati var saturēt pārāk daudz tukšu rindu. Jūs varat izmantot komandu awk, lai diezgan viegli noņemtu tukšās rindas. Pārbaudiet nākamo komandu, lai redzētu, kā tas darbojas praksē.

                      $ awk '/^[ 	]*$/{next}{print}' new.txt

                      Mēs esam noņēmuši visas tukšās rindas no faila new.txt, izmantojot vienkāršu regulāro izteiksmi un iebūvēto awk, ko sauc par nākamo.

                      20. Noņemiet beigu atstarpes


                      Daudzu Linux komandu izvade satur beigu atstarpes. Mēs varam izmantot komandu awk operētājsistēmā Linux, lai noņemtu tādas atstarpes kā atstarpes un cilnes. Pārbaudiet zemāk esošo komandu, lai uzzinātu, kā risināt šādas problēmas, izmantojot awk.

                      $ awk '{sub(/[ 	]*$/, '');print}' new.txt test.txt

                      Pievienojiet mūsu atsauces failiem dažas atstarpes un pārbaudiet, vai awk tās ir veiksmīgi noņemtas. Tas manā mašīnā to izdarīja veiksmīgi.

                      21. Pārbaudiet lauku skaitu katrā rindā


                      Mēs varam viegli pārbaudīt, cik lauku ir rindā, izmantojot vienkāršu awk one-liner. Ir daudz veidu, kā to izdarīt, taču šim uzdevumam mēs izmantosim dažus no awk iebūvētajiem mainīgajiem. Mainīgais NR dod mums rindas numuru, un NF mainīgais nodrošina lauku skaitu.

                      $ awk '{print NR,'-->',NF}' test.txt

                      Tagad mēs varam apstiprināt, cik daudz lauku ir katrā rindā test.txt dokuments. Tā kā katra šī faila rinda satur 5 laukus, mēs esam pārliecināti, ka komanda darbojas, kā paredzēts.

                      22. Pārbaudiet pašreizējo faila nosaukumu


                      Awk mainīgais FILENAME tiek izmantots pašreizējā ievades faila nosaukuma pārbaudei. Mēs demonstrējam, kā tas darbojas, izmantojot vienkāršu piemēru. Tomēr tas var būt noderīgi situācijās, kad faila nosaukums nav skaidri zināms vai ja ir vairāk nekā viens ievades fails.

                      $ awk '{print FILENAME}' test.txt $ awk '{print FILENAME}' test.txt new.txt

                      Iepriekš minētās komandas izdrukā faila nosaukumu awk, ar kuru strādā, katru reizi, kad tiek apstrādāta jauna ievades failu rinda.

                      23. Pārbaudiet apstrādāto ierakstu skaitu


                      Šis piemērs parādīs, kā mēs varam pārbaudīt ierakstu skaitu, ko apstrādā komanda awk. Tā kā liels skaits Linux sistēmas administratoru pārskatu ģenerēšanai izmanto awk, tas viņiem ir ļoti noderīgi.

                      $ awk '{print 'Processing Record - ',NR;} END {print '
                      Total Records Processed:', NR;}' test.txt

                      Es bieži izmantoju šo awk fragmentu, lai iegūtu skaidru pārskatu par savām darbībām. Jūs varat to viegli pielāgot, lai pielāgotos jaunām idejām vai darbībām.

                      apstrādāto rindu skaits awk

                      24. Izdrukājiet ierakstu kopējo rakstzīmju skaitu


                      Awk valoda nodrošina ērtu funkciju garums (), kas norāda, cik rakstzīmju ir ierakstā. Tas ir ļoti noderīgi vairākos scenārijos. Ātri apskatiet šo piemēru, lai redzētu, kā tas darbojas.

                      $ echo 'A random text string...' | awk '{ print length($0); }'
                      $ awk '{ print length($0); }' /etc/passwd

                      Iepriekš minētā komanda drukās kopējo rakstzīmju skaitu katrā ievades virknes vai faila rindā.

                      25. Izdrukājiet visas līnijas ilgāk par noteikto garumu


                      Iepriekšminētajai komandai mēs varam pievienot dažus nosacījumus un likt tai drukāt tikai tās rindas, kas ir lielākas par iepriekš noteiktu garumu. Tas ir noderīgi, ja jums jau ir priekšstats par konkrēta ieraksta garumu.

                      $ echo 'A random text string...' | awk 'length($0) > 10'
                      $ awk '{ length($0) > 5; }' /etc/passwd

                      Jūs varat izmantot vairāk iespēju un/vai argumentu, lai pielāgotu komandu, pamatojoties uz jūsu prasībām.

                      26. Izdrukājiet rindu, rakstzīmju un vārdu skaitu


                      Šī Linux komanda awk izdrukā rindu, rakstzīmju un vārdu skaitu noteiktā ievadē. Šīs darbības veikšanai tiek izmantots mainīgais NR, kā arī dažas pamata aritmētikas.

                      $ echo 'This is a input line...' | awk '{ w += NF; c += length + 1 } END { print NR, w, c }'

                      Tas parāda, ka ievades virknē ir 1 rinda, 5 vārdi un tieši 24 rakstzīmes.

                      27. Aprēķiniet vārdu biežumu


                      Mēs varam apvienot asociatīvos masīvus un for ciklu in awk, lai aprēķinātu dokumenta vārdu biežumu. Šī komanda var šķist nedaudz sarežģīta, taču tā ir diezgan vienkārša, kad skaidri saprotat pamatkonstrukcijas.

                      $ awk 'BEGIN {FS='[^a-zA-Z]+' } { for (i=1; i<=NF; i++) words[tolower($i)]++ } END { for (i in words) print i, words[i] }' test.txt

                      Ja jums ir problēmas ar vienas līnijas fragmentu, nokopējiet šo kodu jaunā failā un palaidiet to, izmantojot avotu.

                      $ cat > frequency.awk BEGIN { FS='[^a-zA-Z]+' } { for (i=1; i<=NF; i++) words[tolower($i)]++ } END { for (i in words) print i, words[i] }

                      Pēc tam palaidiet to, izmantojot -f iespēja.

                      $ awk -f frequency.awk test.txt

                      28. Pārdēvēt failus, izmantojot AWK


                      Komandu awk var izmantot, lai pārdēvētu visus failus, kas atbilst noteiktiem kritērijiem. Šī komanda parāda, kā izmantot awk, lai pārdēvētu visus direktorijā esošos .MP3 failus uz .mp3 failiem.

                      $ touch {a,b,c,d,e}.MP3 $ ls *.MP3 | awk '{ printf('mv '%s' '%s'
                      ', $0, tolower($0)) }' $ ls *.MP3 | awk '{ printf('mv '%s' '%s'
                      ', $0, tolower($0)) }' | sh

                      Pirmkārt, mēs izveidojām dažus demonstrācijas failus ar paplašinājumu .MP3. Otrā komanda parāda lietotājam, kas notiek, ja pārdēvēšana ir veiksmīga. Visbeidzot, pēdējā komanda pārdēvē operāciju, izmantojot Linux komandu mv.

                      29. Izdrukājiet skaitļa kvadrātsakni


                      AWK piedāvā vairākas iebūvētas funkcijas ciparu manipulēšanai. Viens no tiem ir funkcija sqrt (). Tā ir C līdzīga funkcija, kas atgriež dotā skaitļa kvadrātsakni. Ātri apskatiet nākamo piemēru, lai redzētu, kā tas darbojas kopumā.

                      $ awk 'BEGIN{ print sqrt(36); print sqrt(0); print sqrt(-16) }'

                      Tā kā jūs nevarat noteikt negatīvā skaitļa kvadrātsakni, izvadē sqrt (-12) vietā tiks parādīts īpašs atslēgvārds ar nosaukumu “nan”.

                      sqrt funkcija Linux awk komandā

                      30. Izdrukājiet skaitļa logaritmu


                      Funkcijas žurnāls awk () nodrošina skaitļa dabisko logaritmu. Tomēr tas darbosies tikai ar pozitīviem skaitļiem, tāpēc ņemiet vērā lietotāju ievades apstiprināšanu. Pretējā gadījumā kāds var pārtraukt jūsu awk programmas un iegūt priviliģētu piekļuvi sistēmas resursiem.

                      $ awk 'BEGIN{ print log(36); print log(0); print log(-16) }'

                      Jums vajadzētu redzēt logaritmu 36 un pārbaudīt, vai logaritms 0 ir bezgalība, un negatīvās vērtības žurnāls ir “Nav skaitlis” vai nan.

                      31. Izdrukājiet skaitļa eksponenciālu


                      Eksponenciālais os a skaitlis n nodrošina e^n vērtību. To parasti izmanto awk skriptos, kas nodarbojas ar lieliem cipariem vai sarežģītu aritmētisko loģiku. Mēs varam ģenerēt skaitļa eksponenciālu, izmantojot iebūvēto awk funkciju exp ().

                      $ awk 'BEGIN{ print exp(30); print log(0); print exp(-16) }'

                      Tomēr awk nevar aprēķināt eksponenciālu lieliem skaitļiem. Jums vajadzētu veikt šādus aprēķinus, izmantojot zema līmeņa programmēšanas valodas, piemēram, C, un norādīt vērtību saviem awk skriptiem.

                      32. Izveidojiet nejaušus skaitļus, izmantojot AWK


                      Mēs varam izmantot komandu awk Linux, lai ģenerētu nejaušus skaitļus. Šie skaitļi būs diapazonā no 0 līdz 1, bet nekad 0 vai 1. Jūs varat reizināt fiksētu vērtību ar iegūto skaitli, lai iegūtu lielāku izlases vērtību.

                      $ awk 'BEGIN{ print rand(); print rand()*99 }'

                      Funkcijai rand () nav nepieciešami argumenti. Turklāt šīs funkcijas radītie skaitļi nav precīzi nejauši, bet drīzāk pseidogadījumi. Turklāt ir diezgan viegli paredzēt šos skaitļus no skriešanas uz skrējienu. Tāpēc jums nevajadzētu paļauties uz tiem, veicot sensitīvus aprēķinus.

                      33. Krāsu sastādītāja brīdinājumi sarkanā krāsā


                      Mūsdienu Linux kompilatori brīdinās, ja jūsu kods nesaglabā valodas standartus vai ja tajā ir kļūdas, kas neaptur programmas izpildi. Šī komanda awk sarkanā krāsā drukās kompilatora ģenerētās brīdinājuma līnijas.

                      $ gcc -Wall main.c |& awk '/: warning:/{print 'x1B[01;31m' $0 'x1B[m';next;}{print}'

                      Šī komanda ir noderīga, ja vēlaties precīzi noteikt kompilatora brīdinājumus. Šo komandu varat izmantot ar jebkuru kompilatoru, izņemot gcc, vienkārši mainiet modeli /: brīdinājums: /, lai atspoguļotu konkrēto kompilatoru.

                      34. Izdrukājiet failu sistēmas UUID informāciju


                      UUID vai Universāli unikāls identifikators ir skaitlis, ko var izmantot, lai identificētu tādus resursus kā Linux failu sistēma . Mēs varam vienkārši izdrukāt mūsu failu sistēmas UUID informāciju, izmantojot šādu Linux awk komandu.

                      $ awk '/UUID/ {print $0}' /etc/fstab

                      Šī komanda meklē tekstu UUID /etc/fstab failu, izmantojot awk modeļus. Tas atgriež komentāru no faila, kas mūs neinteresē. Zemāk esošā komanda nodrošinās, ka mēs saņemam tikai tās rindas, kas sākas ar UUID.

                      $ awk '/^UUID/ {print $1}' /etc/fstab

                      Tas ierobežo izvadi līdz pirmajam laukam. Tātad mēs iegūstam tikai UUID numurus.

                      35. Izdrukājiet Linux kodola attēla versiju


                      Tiek izmantoti dažādi Linux kodola attēli dažādi Linux izplatījumi . Mēs varam viegli izdrukāt precīzu kodola attēlu, uz kura balstās mūsu sistēma, izmantojot awk. Pārbaudiet šo komandu, lai redzētu, kā tas darbojas kopumā.

                      $ uname -a | awk '{print $3}'

                      Mēs vispirms esam izdevuši komandu uname ar -uz opciju un pēc tam pārsūtīja šos datus uz awk. Tad mēs esam ieguvuši kodola attēla versijas informāciju, izmantojot awk.

                      36. Pievienojiet rindu numurus pirms rindām


                      Lietotāji diezgan bieži var saskarties ar teksta failiem, kas nesatur rindu numurus. Par laimi, jūs varat viegli pievienot rindu numurus failam, izmantojot Linux komandu awk. Rūpīgi apskatiet zemāk redzamo piemēru, lai redzētu, kā tas darbojas reālajā dzīvē.

                      $ awk '{ print FNR '. ' $0 ;next}{print}' test.txt

                      Iepriekš minētā komanda pievienos rindas numuru pirms katras mūsu test.txt atsauces faila rindas. Lai to novērstu, tas izmanto iebūvēto awk mainīgo FNR.

                      pievienojiet rindu numurus, izmantojot komandu awk

                      37. Izdrukājiet failu pēc satura kārtošanas


                      Mēs varam arī izmantot awk, lai izdrukātu sakārtotu visu rindu sarakstu. Šīs komandas drukā visu mūsu test.txt valstu nosaukumu sakārtotā secībā.

                      $ awk -F ':' '{ print $1 }' test.txt | sort

                      Nākamā komanda drukās visu lietotāju pieteikšanās vārdu no /etc/passwd failu.

                      $ awk -F ':' '{ print $1 }' /etc/passwd | sort

                      Jūs varat viegli mainīt kārtošanas kārtību, mainot kārtošanas komandu.

                      38. Izdrukājiet rokasgrāmatas lapu


                      Rokasgrāmatas lapā ir detalizēta informācija par komandu awk, kā arī visas pieejamās iespējas. Tas ir ārkārtīgi svarīgi cilvēkiem, kuri vēlas rūpīgi apgūt awk komandu.

                      $ man awk

                      Ja vēlaties apgūt sarežģītas awk funkcijas, tas jums ļoti palīdzēs. Iepazīstieties ar šo dokumentāciju ikreiz, kad esat saskāries ar problēmu.

                      39. Izdrukājiet palīdzības lapu


                      Palīdzības lapā ir apkopota informācija par visiem iespējamiem komandrindas argumentiem. Varat izsaukt palīdzības ceļvedi, lai iegūtu awk, izmantojot vienu no šīm komandām.

                      $ awk -h $ awk --help

                      Skatiet šo lapu, ja vēlaties ātri apskatīt visas pieejamās awk iespējas.

                      40. Informācija par drukas versiju


                      Versijas informācija sniedz mums informāciju par programmu veidošanu. Awk versijas lapā ir tāda informācija kā autortiesības, apkopošanas rīki utt. Šo informāciju varat skatīt, izmantojot vienu no šīm awk komandām.

                      $ awk -V $ awk --version

                      Beigu domas


                      Komanda awk operētājsistēmā Linux ļauj mums veikt visu veidu lietas, tostarp failu apstrādi un sistēmas uzturēšanu. Tas nodrošina daudzveidīgu darbību klāstu, lai diezgan viegli tiktu galā ar ikdienas skaitļošanas uzdevumiem. Mūsu redaktori ir apkopojuši šo rokasgrāmatu ar 40 noderīgām awk komandām, kuras var izmantot teksta manipulācijām vai administrēšanai. Tā kā AWK pati par sevi ir pilnvērtīga programmēšanas valoda, ir vairāki veidi, kā veikt vienu un to pašu darbu. Tāpēc nebrīnieties, kāpēc mēs dažas lietas darām citādi. Jūs vienmēr varat apkopot savas receptes, pamatojoties uz savu prasmju kopumu un pieredzi. Ja jums ir kādi jautājumi, atstājiet mums savas domas.

                      • Tagi
                      • Programmēšanas rīki
                      • Sistēmas utilītas rīki
                      Kopīgot Facebook Twitter Pinterest WhatsApp ReddIt Telegramma Viber

                        7 KOMENTĀRI

                        1. Ramesh 2020. gada 24. aprīlis plkst. 07:48

                          Kas ir labākais sed vai awk?

                          Atbildēt
                          • lauhub 2021. gada 6. janvāris 04:41

                            Abi ir labākie:

                            - sed ir noderīgs vienkāršiem nomaiņas/izdevuma uzdevumiem, un tam ir daži ierobežojumi sarežģītu uzdevumu programmēšanai (lai gan pieredzējuši lietotāji var darīt daudzas lietas)

                            - awk ir jābūt daudzpusīgākam, lai veiktu vienkāršus uzdevumus, bet ļauj sarežģītākām programmām izmantot sarežģītākas datu struktūras.

                            Jebkurā gadījumā viss ir atkarīgs no jūsu vajadzībām un zināšanām par šiem rīkiem

                            Atbildēt
                          • DC 2021. gada 16. jūlijs plkst. 09:17

                            Abi ir funkcionāli atšķirīgi. sed ir ierobežota funkcionalitāte. Parasti izmanto, lai atrastu un aizstātu virkņu redaktoru.
                            awk tiek izmantots datu manipulācijām un nodrošina vairāk programmēšanas funkcionalitātes

                            Atbildēt
                        2. Ahmeds 2020. gada 16. aprīlis plkst. 13:24

                          Sveiki,
                          Piemēri ir lieliski, taču būtu bijis labāk, ja jūs būtu ievietojis izlaidi arī pēc piemēra.

                          Atbildēt
                          • Rubaiat Hossain 2020. gada 18. aprīlis plkst. 01:28

                            Paldies, Ahmed, ka tu paliec pie mums. Tomēr mēs baidāmies, ka katrai komandai pievienojot atsevišķus attēlus, ceļvedis būs ārkārtīgi garš, un tāpēc lietotāji, kas to lasa no maza ekrāna ierīcēm, piemēram, tālruņiem/planšetdatoriem, var saskarties ar nevēlamu ritināšanas pieredzi.

                            Turklāt mēs mudinām mūsu lasītājus uzlabot šīs awk komandas Linux, atrodoties ceļā, un izmēģināt tās no pirmavotiem. Tādā veidā jūs tos apgūsit ātrāk.

                            Atbildēt
                        3. Stefans 2020. gada 6. aprīlī plkst. 10:54

                          Lieliski piemēri. Paldies par šo

                          Atbildēt
                        4. Kārans Grovers 2020. gada 2. aprīlī plkst. 17:29

                          jauki awk piemēri

                          Atbildēt

                        ATSTĀJ ATBILDI Atcelt atbildi

                        Komentārs: Lūdzu, ievadiet savu komentāru! Vārds:* Lūdzu, ievadiet savu vārdu šeit E -pasts:* Jūs esat ievadījis nepareizu e -pasta adresi! Lūdzu, šeit ievadiet savu e -pasta adresi Vietne:

                        Saglabājiet manu vārdu, e -pastu un vietni šajā pārlūkprogrammā, lai nākamreiz komentētu.

                        spot_img

                        Jaunākā ziņa

                        Android

                        10 labākās sejas maiņas lietotnes Android un iOS ierīcēm

                        Windows OS

                        Kā ieplānot Windows 10, lai automātiski iztukšotu atkritni

                        Android

                        10 labākās rēķinu izrakstīšanas lietotnes Android ierīcei, lai ātri samaksātu

                        Windows OS

                        10 labākās GPU etalona programmatūras jūsu datoram

                        Vajag izlasīt

                        Linux

                        Kā instalēt un konfigurēt XAMPP operētājsistēmā Ubuntu Linux

                        Linux

                        Ubuntu Communitheme - Jauna Ubuntu kopienas tēma

                        Linux

                        Kā instalēt programmatūru no avota koda savā Linux sistēmā

                        Linux

                        RedNotebook - mūsdienīga un bezmaksas dienasgrāmatu un žurnālu programmatūra Linux

                        Saistītā ziņa

                        Kā instalēt un iestatīt kabīnes tīmekļa konsoli Linux sistēmā

                        Kā instalēt un iestatīt Yii PHP Framework Ubuntu Linux

                        Kā labot W: dažiem indeksa failiem neizdevās lejupielādēt kļūdu Ubuntu Linux

                        Kā instalēt un iestatīt 1Password Linux darbvirsmā

                        Kā instalēt jaunāko GNU Nano teksta redaktoru Linux darbvirsmā

                        Kā instalēt jaunu relikvijas infrastruktūras aģentu Linux sistēmā

                        ;next}{print}' test.txt

                        Iepriekš minētā komanda pievienos rindas numuru pirms katras mūsu test.txt atsauces faila rindas. Lai to novērstu, tas izmanto iebūvēto awk mainīgo FNR.

                        pievienojiet rindu numurus, izmantojot komandu awk

                        37. Izdrukājiet failu pēc satura kārtošanas


                        Mēs varam arī izmantot awk, lai izdrukātu sakārtotu visu rindu sarakstu. Šīs komandas drukā visu mūsu test.txt valstu nosaukumu sakārtotā secībā.

                        $ awk -F ':' '{ print  }' test.txt | sort

                        Nākamā komanda drukās visu lietotāju pieteikšanās vārdu no /etc/passwd failu.

                        $ awk -F ':' '{ print  }' /etc/passwd | sort

                        Jūs varat viegli mainīt kārtošanas kārtību, mainot kārtošanas komandu.

                        38. Izdrukājiet rokasgrāmatas lapu


                        Rokasgrāmatas lapā ir detalizēta informācija par komandu awk, kā arī visas pieejamās iespējas. Tas ir ārkārtīgi svarīgi cilvēkiem, kuri vēlas rūpīgi apgūt awk komandu.

                        $ man awk

                        Ja vēlaties apgūt sarežģītas awk funkcijas, tas jums ļoti palīdzēs. Iepazīstieties ar šo dokumentāciju ikreiz, kad esat saskāries ar problēmu.

                        39. Izdrukājiet palīdzības lapu


                        Palīdzības lapā ir apkopota informācija par visiem iespējamiem komandrindas argumentiem. Varat izsaukt palīdzības ceļvedi, lai iegūtu awk, izmantojot vienu no šīm komandām.

                        $ awk -h $ awk --help

                        Skatiet šo lapu, ja vēlaties ātri apskatīt visas pieejamās awk iespējas.

                        40. Informācija par drukas versiju


                        Versijas informācija sniedz mums informāciju par programmu veidošanu. Awk versijas lapā ir tāda informācija kā autortiesības, apkopošanas rīki utt. Šo informāciju varat skatīt, izmantojot vienu no šīm awk komandām.

                        $ awk -V $ awk --version

                        Beigu domas


                        Komanda awk operētājsistēmā Linux ļauj mums veikt visu veidu lietas, tostarp failu apstrādi un sistēmas uzturēšanu. Tas nodrošina daudzveidīgu darbību klāstu, lai diezgan viegli tiktu galā ar ikdienas skaitļošanas uzdevumiem. Mūsu redaktori ir apkopojuši šo rokasgrāmatu ar 40 noderīgām awk komandām, kuras var izmantot teksta manipulācijām vai administrēšanai. Tā kā AWK pati par sevi ir pilnvērtīga programmēšanas valoda, ir vairāki veidi, kā veikt vienu un to pašu darbu. Tāpēc nebrīnieties, kāpēc mēs dažas lietas darām citādi. Jūs vienmēr varat apkopot savas receptes, pamatojoties uz savu prasmju kopumu un pieredzi. Ja jums ir kādi jautājumi, atstājiet mums savas domas.

                        • Tagi
                        • Programmēšanas rīki
                        • Sistēmas utilītas rīki
                        Kopīgot Facebook Twitter Pinterest WhatsApp ReddIt Telegramma Viber

                          7 KOMENTĀRI

                          1. Ramesh 2020. gada 24. aprīlis plkst. 07:48

                            Kas ir labākais sed vai awk?

                            Atbildēt
                            • lauhub 2021. gada 6. janvāris 04:41

                              Abi ir labākie:

                              kā es varu dienas pievienot datumam

                              - sed ir noderīgs vienkāršiem nomaiņas/izdevuma uzdevumiem, un tam ir daži ierobežojumi sarežģītu uzdevumu programmēšanai (lai gan pieredzējuši lietotāji var darīt daudzas lietas)

                              - awk ir jābūt daudzpusīgākam, lai veiktu vienkāršus uzdevumus, bet ļauj sarežģītākām programmām izmantot sarežģītākas datu struktūras.

                              Jebkurā gadījumā viss ir atkarīgs no jūsu vajadzībām un zināšanām par šiem rīkiem

                              Atbildēt
                            • DC 2021. gada 16. jūlijs plkst. 09:17

                              Abi ir funkcionāli atšķirīgi. sed ir ierobežota funkcionalitāte. Parasti izmanto, lai atrastu un aizstātu virkņu redaktoru.
                              awk tiek izmantots datu manipulācijām un nodrošina vairāk programmēšanas funkcionalitātes

                              Atbildēt
                          2. Ahmeds 2020. gada 16. aprīlis plkst. 13:24

                            Sveiki,
                            Piemēri ir lieliski, taču būtu bijis labāk, ja jūs būtu ievietojis izlaidi arī pēc piemēra.

                            Atbildēt
                            • Rubaiat Hossain 2020. gada 18. aprīlis plkst. 01:28

                              Paldies, Ahmed, ka tu paliec pie mums. Tomēr mēs baidāmies, ka katrai komandai pievienojot atsevišķus attēlus, ceļvedis būs ārkārtīgi garš, un tāpēc lietotāji, kas to lasa no maza ekrāna ierīcēm, piemēram, tālruņiem/planšetdatoriem, var saskarties ar nevēlamu ritināšanas pieredzi.

                              Turklāt mēs mudinām mūsu lasītājus uzlabot šīs awk komandas Linux, atrodoties ceļā, un izmēģināt tās no pirmavotiem. Tādā veidā jūs tos apgūsit ātrāk.

                              Atbildēt
                          3. Stefans 2020. gada 6. aprīlī plkst. 10:54

                            Lieliski piemēri. Paldies par šo

                            Atbildēt
                          4. Kārans Grovers 2020. gada 2. aprīlī plkst. 17:29

                            jauki awk piemēri

                            Atbildēt

                          ATSTĀJ ATBILDI Atcelt atbildi

                          Komentārs: Lūdzu, ievadiet savu komentāru! Vārds:* Lūdzu, ievadiet savu vārdu šeit E -pasts:* Jūs esat ievadījis nepareizu e -pasta adresi! Lūdzu, šeit ievadiet savu e -pasta adresi Vietne:

                          Saglabājiet manu vārdu, e -pastu un vietni šajā pārlūkprogrammā, lai nākamreiz komentētu.

                          spot_img

                          Jaunākā ziņa

                          Android

                          10 labākās sejas maiņas lietotnes Android un iOS ierīcēm

                          Windows OS

                          Kā ieplānot Windows 10, lai automātiski iztukšotu atkritni

                          Android

                          10 labākās rēķinu izrakstīšanas lietotnes Android ierīcei, lai ātri samaksātu

                          Windows OS

                          10 labākās GPU etalona programmatūras jūsu datoram

                          Vajag izlasīt

                          Linux

                          Kā instalēt un konfigurēt XAMPP operētājsistēmā Ubuntu Linux

                          Linux

                          Ubuntu Communitheme - Jauna Ubuntu kopienas tēma

                          Linux

                          Kā instalēt programmatūru no avota koda savā Linux sistēmā

                          Linux

                          RedNotebook - mūsdienīga un bezmaksas dienasgrāmatu un žurnālu programmatūra Linux

                          Saistītā ziņa

                          Kā instalēt un iestatīt kabīnes tīmekļa konsoli Linux sistēmā

                          Kā instalēt un iestatīt Yii PHP Framework Ubuntu Linux

                          Kā labot W: dažiem indeksa failiem neizdevās lejupielādēt kļūdu Ubuntu Linux

                          Kā instalēt un iestatīt 1Password Linux darbvirsmā

                          Kā instalēt jaunāko GNU Nano teksta redaktoru Linux darbvirsmā

                          Kā instalēt jaunu relikvijas infrastruktūras aģentu Linux sistēmā



                          ^