Hvordan lese Awk-inndata fra STDIN i Linux - Del 7


I de forrige delene av Awk-verktøyserien så vi på lesing av input hovedsakelig fra en fil(er), men hva om du vil lese input fra STDIN.

I denne del 7 av Awk-serien skal vi se på noen eksempler der du kan filtrere utdataene fra andre kommandoer i stedet for å lese inndata fra en fil.

Vi skal starte med dir-verktøyet som fungerer på samme måte som ls-kommandoen, i det første eksemplet nedenfor bruker vi utdataene fra dir -l-kommandoen som input for Awk for å skrive ut eierens brukernavn, gruppenavn og filene han /hun eier i gjeldende katalog:

dir -l | awk '{print $3, $4, $9;}'

Ta en titt på et annet eksempel der vi bruker awk-uttrykk, her ønsker vi å skrive ut filer som eies av root-brukeren ved å bruke et uttrykk for å filtrere strenger som i awk-kommandoen nedenfor:

dir -l | awk '$3=="root" {print $1,$3,$4, $9;} '

Kommandoen ovenfor inkluderer sammenligningsoperatoren (==) for å hjelpe oss med å filtrere ut filer i gjeldende katalog som eies av rotbrukeren. Dette oppnås ved å bruke uttrykket $3== ”root ”.

La oss se på et annet eksempel på hvor vi bruker en awk sammenligningsoperator for å matche en bestemt streng.

Her har vi brukt cat-verktøyet til å se innholdet i en fil som heter tecmint_deals.txt, og vi ønsker kun å se tilbudene av typen Tech, så vi skal kjøre følgende kommandoer:

cat tecmint_deals.txt
cat tecmint_deals.txt | awk '$4 ~ /tech/{print}'
cat tecmint_deals.txt | awk '$4 ~ /Tech/{print}'

I eksemplet ovenfor har vi brukt verdien ~ /pattern/ sammenligningsoperator, men det er to kommandoer for å prøve å få frem noe veldig viktig.

Når du kjører kommandoen med mønsteret tech blir ingenting skrevet ut fordi det ikke er noen avtale av den typen, men med Tech får du avtaler på skriv Tech.

Så vær alltid forsiktig når du bruker denne sammenligningsoperatoren, den skiller mellom store og små bokstaver som vi har sett ovenfor.

Du kan alltid bruke utdata fra en annen kommando i stedet som input for awk i stedet for å lese input fra en fil, dette er veldig enkelt som vi har sett på i eksemplene ovenfor.

Håper eksemplene var klare nok til at du kunne forstå, hvis du har noen bekymringer, kan du uttrykke dem gjennom kommentarseksjonen nedenfor og husk å sjekke neste del av serien hvor vi skal se på awk funksjoner som variabler, numeriske uttrykk og tilordningsoperatorer.