Komanda AWK në Linux/Unix


AWK është i përshtatshëm për kërkimin dhe përpunimin e modeleve. Skripti funksionon për të kërkuar një ose më shumë skedarë për të identifikuar modelet që përputhen dhe nëse modelet e përmendura kryejnë detyra specifike. Në këtë udhëzues, ne hedhim një vështrim në komandën AWK Linux dhe shohim se çfarë mund të bëjë.

Çfarë operacionesh mund të bëjë AWK?

  • Skanimi i skedarëve rresht pas rreshti
  • Ndarja e çdo rreshti hyrës në fusha
  • Krahasimi i linjave dhe fushave hyrëse me modelet
  • Kryerja e veprimeve të specifikuara në linjat që përputhen

Dobia e komandës AWK

  • Po ndryshon skedarët e të dhënave
  • Prodhimi i raporteve të formatuara

Konceptet e programimit për komandën awk

  • Formatoni linjat e daljes
  • Të kushtëzuara dhe sythe
  • Veprimet aritmetike dhe vargjet

Sintaksa AWK

$ awk options 'selection _criteria {action }' input-file > output-file

Shembuj të komandave Awk

Printimi i kolonave specifike

Për të printuar kolonën e dytë dhe të tretë, ekzekutoni komandën më poshtë.

$ awk '{print $2 "\t" $3}' file.txt

Printimi i të gjitha rreshtave në një skedar

Nëse dëshironi të listoni të gjitha rreshtat dhe kolonat në një skedar, ekzekutojeni

$ awk ' {print $0}' file.txt

Printimi i të gjitha linjave që përputhen me një model specifik

nëse dëshironi të printoni rreshta që përputhen me një model të caktuar, sintaksa është siç tregohet

$ awk '/variable_to_be_matched/ {print $0}' file.txt

Për shembull, për të përputhur të gjitha hyrjet me shkronjën o, sintaksa do të jetë

$ awk '/o/ {print $0}' file.txt
$ awk '/e/ {print $0}' file.txt

Printimi i kolonave që përputhen me një model specifik

Kur AWK lokalizon një përputhje modeli, komanda do të ekzekutojë të gjithë rekordin. Ju mund të ndryshoni parazgjedhjen duke lëshuar një udhëzim për të shfaqur vetëm disa fusha. Për shembull:

$ awk '/a/ {print $3 "\t" $4}' file.txt

Numërimi dhe printimi i modelit të përputhur

Ju mund të përdorni AWK për të numëruar dhe printuar numrin e rreshtave për çdo përputhje modeli. Për shembull, komanda më poshtë numëron numrin e rasteve që shfaqet një model që përputhet

$ awk '/a/{++cnt} END {print "Count = ", cnt}' file.txt

Printoni linja me më shumë ose më pak se një numër karakteresh

AWK ka një funksion të integruar të gjatësisë që kthen gjatësinë e vargut. Nga komanda $0 ndryshorja ruan të gjithë rreshtin dhe në mungesë të një blloku trupor, kryhet veprimi i paracaktuar, d.m.th., veprimi i printimit. Prandaj, në skedarin tonë të tekstit, nëse një rresht ka më shumë se 18 karaktere, atëherë krahasimi rezulton i vërtetë dhe rreshti printohet siç tregohet më poshtë.

$ awk 'length($0) > 20' file.txt

Ruajtja e prodhimit të AWK në një skedar tjetër

Nëse dëshironi të ruani rezultatet e rezultateve tuaja, përdorni operatorin > ridrejtimi. Për shembull

$ awk '/a/ {print $3 "\t" $4}' file.txt > Output.txt

Ju mund të verifikoni rezultatet duke përdorur komandën cat siç tregohet më poshtë

$ cat output.txt

konkluzioni

AWK është një tjetër skript i thjeshtë programimi që mund ta përdorni për të manipuluar tekstin në dokumente ose për të kryer funksione specifike. Komandat e përbashkëta janë disa ose të shumta që ende nuk i keni njohur ose hasur.