Awk er et skriptspråk som brukes til å manipulere data og generere rapporter. Programmeringsspråket awk kommando krever ingen kompilering og lar brukeren bruke variabler, numeriske funksjoner, strengfunksjoner og logiske operatorer.
Awk er et verktøy som gjør det mulig for en programmerer å skrive bittesmå, men effektive programmer i form av utsagn som definerer tekstmønstre som skal søkes etter i hver linje i et dokument og handlingen som skal utføres når et samsvar blir funnet i et dokument. linje. Awk brukes mest til mønsterskanning og prosessering. Den søker i én eller flere filer for å se om de inneholder linjer som samsvarer med de angitte mønstrene og utfører deretter de tilknyttede handlingene.
Awk er forkortet fra navnene på utviklerne - Aho, Weinberger og Kernighan.
HVA KAN VI GJØRE MED AWK?
1. AWK-operasjoner:
(a) Skanner en fil linje for linje
(b) Deler hver inndatalinje i felt
(c) Sammenligner inndatalinje/felt med mønster
(d) Utfører handling(er) på samsvarende linjer
2. Nyttig for:
(a) Transform datafiler
(b) Lag formaterte rapporter
3. Programmeringskonstruksjoner:
(a) Formater utdatalinjer
(b) Aritmetikk og strengoperasjoner
(c) Betingelser og løkker
Syntaks:
awk options 'selection _criteria {action }' input-file>utdatafil> Alternativer:
-f program-file : Reads the AWK program source from the file program-file, instead of from the first command line argument. -F fs : Use fs for the input field separator>
Eksempel på kommandoer
Eksempel:
Betrakt følgende tekstfil som inndatafil for alle tilfeller nedenfor:
$cat>ansatt.txt>
ajay manager account 45000 sunil clerk account 25000 varun manager sales 50000 amit manager account 47000 tarun peon sales 15000 deepak clerk sales 23000 sunil peon sales 13000 satvik director purchase 80000>
1. Standard oppførsel for Awk: Som standard skriver Awk ut hver linje med data fra den angitte filen.
$ awk '{print}' employee.txt> Produksjon:
ajay manager account 45000 sunil clerk account 25000 varun manager sales 50000 amit manager account 47000 tarun peon sales 15000 deepak clerk sales 23000 sunil peon sales 13000 satvik director purchase 80000>
I eksemplet ovenfor er det ikke gitt noe mønster. Så handlingene gjelder for alle linjene. Handlingsutskrift uten argumenter skriver ut hele linjen som standard, slik at den skriver ut alle linjene i filen uten feil.
2. Skriv ut linjene som samsvarer med det gitte mønsteret.
$ awk '/manager/ {print}' employee.txt> Produksjon:
ajay manager account 45000 varun manager sales 50000 amit manager account 47000>
I eksemplet ovenfor skriver awk-kommandoen ut all linjen som samsvarer med 'manageren'.
3. Dele en linje i felt: For hver post, dvs. linje, deler awk-kommandoen posten avgrenset med blanktegn som standard og lagrer den i $n-variablene. Hvis linjen har 4 ord, vil den lagres i henholdsvis , , og . Dessuten representerer Awk er et skriptspråk som brukes til å manipulere data og generere rapporter. Programmeringsspråket awk kommando krever ingen kompilering og lar brukeren bruke variabler, numeriske funksjoner, strengfunksjoner og logiske operatorer. Awk er et verktøy som gjør det mulig for en programmerer å skrive bittesmå, men effektive programmer i form av utsagn som definerer tekstmønstre som skal søkes etter i hver linje i et dokument og handlingen som skal utføres når et samsvar blir funnet i et dokument. linje. Awk brukes mest til mønsterskanning og prosessering. Den søker i én eller flere filer for å se om de inneholder linjer som samsvarer med de angitte mønstrene og utfører deretter de tilknyttede handlingene. Awk er forkortet fra navnene på utviklerne - Aho, Weinberger og Kernighan. HVA KAN VI GJØRE MED AWK? 1. AWK-operasjoner: 2. Nyttig for: 3. Programmeringskonstruksjoner: Syntaks: Alternativer: Eksempel på kommandoer Eksempel: Betrakt følgende tekstfil som inndatafil for alle tilfeller nedenfor: 1. Standard oppførsel for Awk: Som standard skriver Awk ut hver linje med data fra den angitte filen. Produksjon: I eksemplet ovenfor er det ikke gitt noe mønster. Så handlingene gjelder for alle linjene. Handlingsutskrift uten argumenter skriver ut hele linjen som standard, slik at den skriver ut alle linjene i filen uten feil. 2. Skriv ut linjene som samsvarer med det gitte mønsteret. Produksjon: I eksemplet ovenfor skriver awk-kommandoen ut all linjen som samsvarer med 'manageren'. 3. Dele en linje i felt: For hver post, dvs. linje, deler awk-kommandoen posten avgrenset med blanktegn som standard og lagrer den i $n-variablene. Hvis linjen har 4 ord, vil den lagres i henholdsvis $1, $2, $3 og $4. Dessuten representerer $0 hele linjen. Produksjon: I eksemplet ovenfor representerer $1 og $4 henholdsvis navn og lønnsfelt. Innebygde variabler i Awk Awks innebygde variabler inkluderer feltvariablene - $1, $2, $3 og så videre ($0 er hele linjen) - som bryter en tekstlinje i individuelle ord eller deler kalt felt. Eksempler: Bruk av NR innebygde variabler (visningslinjenummer) Produksjon: I eksemplet ovenfor skriver awk-kommandoen med NR ut alle linjene sammen med linjenummeret. Bruk av innebygde NF-variabler (Vis siste felt) Produksjon: I eksemplet ovenfor representerer $1 Navn og $NF representerer lønn. Vi kan få lønnen ved å bruke $NF , der $NF representerer siste felt. En annen bruk av NR innebygde variabler (visningslinje fra 3 til 6) Produksjon: Flere eksempler For den gitte tekstfilen: 1) For å skrive ut det første elementet sammen med radnummeret (NR) atskilt med – fra hver linje i geeksforgeeks.txt: 2) For å returnere den andre kolonnen/elementet fra geeksforgeeks.txt: Spørsmålet bør være:- For å returnere den andre kolonnen/elementet fra geeksforgeeks.txt: 3) For å skrive ut en ikke-tom linje hvis den finnes her skal NF være 0 ikke mindre enn, og brukeren må også skrive ut linjenummeret: riktig svar : awk ‘NF == 0 {print NR}’ geeksforgeeks.txt ELLER awk ‘NF <= 0 {print NR}’ geeksforgeeks.txt 4) For å finne lengden på den lengste linjen i filen: 5) For å telle linjene i en fil: 6) Skrive ut linjer med mer enn 10 tegn: 7) For å finne/sjekke etter en streng i en bestemt kolonne: 8) For å skrive ut kvadratene til de første tallene fra 1 til n si 6:
(a) Skanner en fil linje for linje
(b) Deler hver inndatalinje i felt
(c) Sammenligner inndatalinje/felt med mønster
(d) Utfører handling(er) på samsvarende linjer
(a) Transform datafiler
(b) Lag formaterte rapporter
(a) Formater utdatalinjer
(b) Aritmetikk og strengoperasjoner
(c) Betingelser og løkkerawk options 'selection _criteria {action }' input-file>utdatafil> -f program-file : Reads the AWK program source from the file program-file, instead of from the first command line argument. -F fs : Use fs for the input field separator>
$cat>ansatt.txt>
ajay manager account 45000 sunil clerk account 25000 varun manager sales 50000 amit manager account 47000 tarun peon sales 15000 deepak clerk sales 23000 sunil peon sales 13000 satvik director purchase 80000>
$ awk '{print}' employee.txt> ajay manager account 45000 sunil clerk account 25000 varun manager sales 50000 amit manager account 47000 tarun peon sales 15000 deepak clerk sales 23000 sunil peon sales 13000 satvik director purchase 80000>
$ awk '/manager/ {print}' employee.txt> ajay manager account 45000 varun manager sales 50000 amit manager account 47000>
$ awk '{print $1,$4}' employee.txt> ajay 45000 sunil 25000 varun 50000 amit 47000 tarun 15000 deepak 23000 sunil 13000 satvik 80000>
NR: NR-kommandoen holder en gjeldende telling av antall inngangsposter. Husk at poster vanligvis er linjer. Awk-kommandoen utfører mønster-/handlingssetningene én gang for hver post i en fil. NF: NF-kommandoen holder en telling av antall felt innenfor gjeldende inngangspost. FS: FS-kommandoen inneholder feltseparatortegnet som brukes til å dele felt på inndatalinjen. Standard er mellomrom, som betyr mellomrom og tabulatortegn. FS kan omdisponeres til et annet tegn (vanligvis i BEGIN) for å endre feltskilletegn. RS: RS-kommandoen lagrer gjeldende postskilletegn. Siden en inndatalinje som standard er inngangsposten, er standard postskilletegn en ny linje. OFS: OFS-kommandoen lagrer utdatafeltseparatoren, som skiller feltene når Awk skriver dem ut. Standard er et tomt mellomrom. Når utskrift har flere parametere atskilt med komma, vil den skrive ut verdien av OFS mellom hver parameter. ORS: ORS-kommandoen lagrer utdatapostseparatoren, som skiller utdatalinjene når Awk skriver dem ut. Standard er et linjeskifttegn. print sender automatisk ut innholdet i ORS på slutten av det det er gitt til utskrift.
$ awk '{print NR,$0}' employee.txt> 1 ajay manager account 45000 2 sunil clerk account 25000 3 varun manager sales 50000 4 amit manager account 47000 5 tarun peon sales 15000 6 deepak clerk sales 23000 7 sunil peon sales 13000 8 satvik director purchase 80000>
$ awk '{print $1,$NF}' employee.txt> ajay 45000 sunil 25000 varun 50000 amit 47000 tarun 15000 deepak 23000 sunil 13000 satvik 80000>
$ awk 'NR==3, NR==6 {print NR,$0}' employee.txt> 3 varun manager sales 50000 4 amit manager account 47000 5 tarun peon sales 15000 6 deepak clerk sales 23000>
$cat>geeksforgeeks.txt A B C Tarun A12 1 Man B6 2 Praveen M42 3>
$ awk '{print NR '- ' $1 }' geeksforgeeks.txt> 1 - A 2 - Tarun 3 – Manav 4 - Praveen>
$ awk '{print $2}' geeksforgeeks.txt> B A12 B6 M42>
$ awk 'NF <0' geeksforgeeks.txt>
0>
$ awk '{ if (length($0)>max) max = length($0) } END { print max }' geeksforgeeks.txt> 13>
$ awk 'END { print NR }' geeksforgeeks.txt> 3>
$ awk 'length($0)>10' geeksforgeeks.txt>
Tarun A12 1 Praveen M42 3>
$ awk '{ if($3 == 'B6') print $0;}' geeksforgeeks.txt> $ awk 'BEGIN { for(i=1;i<=6;i++) print 'square of', i, 'is',i*i; }'> square of 1 is 1 square of 2 is 4 square of 3 is 9 square of 4 is 16 square of 5 is 25 square of 6 is 36>
$ awk '{print ,}' employee.txt> Produksjon:
ajay 45000 sunil 25000 varun 50000 amit 47000 tarun 15000 deepak 23000 sunil 13000 satvik 80000>
I eksemplet ovenfor representerer og henholdsvis navn og lønnsfelt.
Innebygde variabler i Awk
Awks innebygde variabler inkluderer feltvariablene - , , og så videre ( Awk er et skriptspråk som brukes til å manipulere data og generere rapporter. Programmeringsspråket awk kommando krever ingen kompilering og lar brukeren bruke variabler, numeriske funksjoner, strengfunksjoner og logiske operatorer. Awk er et verktøy som gjør det mulig for en programmerer å skrive bittesmå, men effektive programmer i form av utsagn som definerer tekstmønstre som skal søkes etter i hver linje i et dokument og handlingen som skal utføres når et samsvar blir funnet i et dokument. linje. Awk brukes mest til mønsterskanning og prosessering. Den søker i én eller flere filer for å se om de inneholder linjer som samsvarer med de angitte mønstrene og utfører deretter de tilknyttede handlingene. Awk er forkortet fra navnene på utviklerne - Aho, Weinberger og Kernighan. HVA KAN VI GJØRE MED AWK? 1. AWK-operasjoner: 2. Nyttig for: 3. Programmeringskonstruksjoner: Syntaks: Alternativer: Eksempel på kommandoer Eksempel: Betrakt følgende tekstfil som inndatafil for alle tilfeller nedenfor: 1. Standard oppførsel for Awk: Som standard skriver Awk ut hver linje med data fra den angitte filen. Produksjon: I eksemplet ovenfor er det ikke gitt noe mønster. Så handlingene gjelder for alle linjene. Handlingsutskrift uten argumenter skriver ut hele linjen som standard, slik at den skriver ut alle linjene i filen uten feil. 2. Skriv ut linjene som samsvarer med det gitte mønsteret. Produksjon: I eksemplet ovenfor skriver awk-kommandoen ut all linjen som samsvarer med 'manageren'. 3. Dele en linje i felt: For hver post, dvs. linje, deler awk-kommandoen posten avgrenset med blanktegn som standard og lagrer den i $n-variablene. Hvis linjen har 4 ord, vil den lagres i henholdsvis $1, $2, $3 og $4. Dessuten representerer $0 hele linjen. Produksjon: I eksemplet ovenfor representerer $1 og $4 henholdsvis navn og lønnsfelt. Innebygde variabler i Awk Awks innebygde variabler inkluderer feltvariablene - $1, $2, $3 og så videre ($0 er hele linjen) - som bryter en tekstlinje i individuelle ord eller deler kalt felt. Eksempler: Bruk av NR innebygde variabler (visningslinjenummer) Produksjon: I eksemplet ovenfor skriver awk-kommandoen med NR ut alle linjene sammen med linjenummeret. Bruk av innebygde NF-variabler (Vis siste felt) Produksjon: I eksemplet ovenfor representerer $1 Navn og $NF representerer lønn. Vi kan få lønnen ved å bruke $NF , der $NF representerer siste felt. En annen bruk av NR innebygde variabler (visningslinje fra 3 til 6) Produksjon: Flere eksempler For den gitte tekstfilen: 1) For å skrive ut det første elementet sammen med radnummeret (NR) atskilt med – fra hver linje i geeksforgeeks.txt: 2) For å returnere den andre kolonnen/elementet fra geeksforgeeks.txt: Spørsmålet bør være:- For å returnere den andre kolonnen/elementet fra geeksforgeeks.txt: 3) For å skrive ut en ikke-tom linje hvis den finnes her skal NF være 0 ikke mindre enn, og brukeren må også skrive ut linjenummeret: riktig svar : awk ‘NF == 0 {print NR}’ geeksforgeeks.txt ELLER awk ‘NF <= 0 {print NR}’ geeksforgeeks.txt 4) For å finne lengden på den lengste linjen i filen: 5) For å telle linjene i en fil: 6) Skrive ut linjer med mer enn 10 tegn: 7) For å finne/sjekke etter en streng i en bestemt kolonne: 8) For å skrive ut kvadratene til de første tallene fra 1 til n si 6:
(a) Skanner en fil linje for linje
(b) Deler hver inndatalinje i felt
(c) Sammenligner inndatalinje/felt med mønster
(d) Utfører handling(er) på samsvarende linjer
(a) Transform datafiler
(b) Lag formaterte rapporter
(a) Formater utdatalinjer
(b) Aritmetikk og strengoperasjoner
(c) Betingelser og løkkerawk options 'selection _criteria {action }' input-file>utdatafil> -f program-file : Reads the AWK program source from the file program-file, instead of from the first command line argument. -F fs : Use fs for the input field separator>
$cat>ansatt.txt>
ajay manager account 45000 sunil clerk account 25000 varun manager sales 50000 amit manager account 47000 tarun peon sales 15000 deepak clerk sales 23000 sunil peon sales 13000 satvik director purchase 80000>
$ awk '{print}' employee.txt> ajay manager account 45000 sunil clerk account 25000 varun manager sales 50000 amit manager account 47000 tarun peon sales 15000 deepak clerk sales 23000 sunil peon sales 13000 satvik director purchase 80000>
$ awk '/manager/ {print}' employee.txt> ajay manager account 45000 varun manager sales 50000 amit manager account 47000>
$ awk '{print $1,$4}' employee.txt> ajay 45000 sunil 25000 varun 50000 amit 47000 tarun 15000 deepak 23000 sunil 13000 satvik 80000>
NR: NR-kommandoen holder en gjeldende telling av antall inngangsposter. Husk at poster vanligvis er linjer. Awk-kommandoen utfører mønster-/handlingssetningene én gang for hver post i en fil. NF: NF-kommandoen holder en telling av antall felt innenfor gjeldende inngangspost. FS: FS-kommandoen inneholder feltseparatortegnet som brukes til å dele felt på inndatalinjen. Standard er mellomrom, som betyr mellomrom og tabulatortegn. FS kan omdisponeres til et annet tegn (vanligvis i BEGIN) for å endre feltskilletegn. RS: RS-kommandoen lagrer gjeldende postskilletegn. Siden en inndatalinje som standard er inngangsposten, er standard postskilletegn en ny linje. OFS: OFS-kommandoen lagrer utdatafeltseparatoren, som skiller feltene når Awk skriver dem ut. Standard er et tomt mellomrom. Når utskrift har flere parametere atskilt med komma, vil den skrive ut verdien av OFS mellom hver parameter. ORS: ORS-kommandoen lagrer utdatapostseparatoren, som skiller utdatalinjene når Awk skriver dem ut. Standard er et linjeskifttegn. print sender automatisk ut innholdet i ORS på slutten av det det er gitt til utskrift.
$ awk '{print NR,$0}' employee.txt> 1 ajay manager account 45000 2 sunil clerk account 25000 3 varun manager sales 50000 4 amit manager account 47000 5 tarun peon sales 15000 6 deepak clerk sales 23000 7 sunil peon sales 13000 8 satvik director purchase 80000>
$ awk '{print $1,$NF}' employee.txt> ajay 45000 sunil 25000 varun 50000 amit 47000 tarun 15000 deepak 23000 sunil 13000 satvik 80000>
$ awk 'NR==3, NR==6 {print NR,$0}' employee.txt> 3 varun manager sales 50000 4 amit manager account 47000 5 tarun peon sales 15000 6 deepak clerk sales 23000>
$cat>geeksforgeeks.txt A B C Tarun A12 1 Man B6 2 Praveen M42 3>
$ awk '{print NR '- ' $1 }' geeksforgeeks.txt> 1 - A 2 - Tarun 3 – Manav 4 - Praveen>
$ awk '{print $2}' geeksforgeeks.txt> B A12 B6 M42>
$ awk 'NF <0' geeksforgeeks.txt>
0>
$ awk '{ if (length($0)>max) max = length($0) } END { print max }' geeksforgeeks.txt> 13>
$ awk 'END { print NR }' geeksforgeeks.txt> 3>
$ awk 'length($0)>10' geeksforgeeks.txt>
Tarun A12 1 Praveen M42 3>
$ awk '{ if($3 == 'B6') print $0;}' geeksforgeeks.txt> $ awk 'BEGIN { for(i=1;i<=6;i++) print 'square of', i, 'is',i*i; }'> square of 1 is 1 square of 2 is 4 square of 3 is 9 square of 4 is 16 square of 5 is 25 square of 6 is 36>
1 til 100 romersk nr
- NR: NR-kommandoen holder en gjeldende telling av antall inngangsposter. Husk at poster vanligvis er linjer. Awk-kommandoen utfører mønster-/handlingssetningene én gang for hver post i en fil. NF: NF-kommandoen holder en telling av antall felt innenfor gjeldende inngangspost. FS: FS-kommandoen inneholder feltseparatortegnet som brukes til å dele felt på inndatalinjen. Standard er mellomrom, som betyr mellomrom og tabulatortegn. FS kan omdisponeres til et annet tegn (vanligvis i BEGIN) for å endre feltskilletegn. RS: RS-kommandoen lagrer gjeldende postskilletegn. Siden en inndatalinje som standard er inngangsposten, er standard postskilletegn en ny linje. OFS: OFS-kommandoen lagrer utdatafeltseparatoren, som skiller feltene når Awk skriver dem ut. Standard er et tomt mellomrom. Når utskrift har flere parametere atskilt med komma, vil den skrive ut verdien av OFS mellom hver parameter. ORS: ORS-kommandoen lagrer utdatapostseparatoren, som skiller utdatalinjene når Awk skriver dem ut. Standard er et linjeskifttegn. print sender automatisk ut innholdet i ORS på slutten av det det er gitt til utskrift.
Eksempler:
Bruk av NR innebygde variabler (visningslinjenummer)
$ awk '{print NR,Awk er et skriptspråk som brukes til å manipulere data og generere rapporter. Programmeringsspråket awk kommando krever ingen kompilering og lar brukeren bruke variabler, numeriske funksjoner, strengfunksjoner og logiske operatorer.
Awk er et verktøy som gjør det mulig for en programmerer å skrive bittesmå, men effektive programmer i form av utsagn som definerer tekstmønstre som skal søkes etter i hver linje i et dokument og handlingen som skal utføres når et samsvar blir funnet i et dokument. linje. Awk brukes mest til mønsterskanning og prosessering. Den søker i én eller flere filer for å se om de inneholder linjer som samsvarer med de angitte mønstrene og utfører deretter de tilknyttede handlingene.
Awk er forkortet fra navnene på utviklerne - Aho, Weinberger og Kernighan.
HVA KAN VI GJØRE MED AWK?
1. AWK-operasjoner:
(a) Skanner en fil linje for linje
(b) Deler hver inndatalinje i felt
(c) Sammenligner inndatalinje/felt med mønster
(d) Utfører handling(er) på samsvarende linjer
2. Nyttig for:
(a) Transform datafiler
(b) Lag formaterte rapporter
3. Programmeringskonstruksjoner:
(a) Formater utdatalinjer
(b) Aritmetikk og strengoperasjoner
(c) Betingelser og løkker
Syntaks:
awk options 'selection _criteria {action }' input-file>utdatafil> Alternativer:
-f program-file : Reads the AWK program source from the file program-file, instead of from the first command line argument. -F fs : Use fs for the input field separator>
Eksempel på kommandoer
Eksempel:
Betrakt følgende tekstfil som inndatafil for alle tilfeller nedenfor:
$cat>ansatt.txt>
ajay manager account 45000 sunil clerk account 25000 varun manager sales 50000 amit manager account 47000 tarun peon sales 15000 deepak clerk sales 23000 sunil peon sales 13000 satvik director purchase 80000>
1. Standard oppførsel for Awk: Som standard skriver Awk ut hver linje med data fra den angitte filen.
$ awk '{print}' employee.txt> Produksjon:
ajay manager account 45000 sunil clerk account 25000 varun manager sales 50000 amit manager account 47000 tarun peon sales 15000 deepak clerk sales 23000 sunil peon sales 13000 satvik director purchase 80000>
I eksemplet ovenfor er det ikke gitt noe mønster. Så handlingene gjelder for alle linjene. Handlingsutskrift uten argumenter skriver ut hele linjen som standard, slik at den skriver ut alle linjene i filen uten feil.
2. Skriv ut linjene som samsvarer med det gitte mønsteret.
$ awk '/manager/ {print}' employee.txt> Produksjon:
ajay manager account 45000 varun manager sales 50000 amit manager account 47000>
I eksemplet ovenfor skriver awk-kommandoen ut all linjen som samsvarer med 'manageren'.
3. Dele en linje i felt: For hver post, dvs. linje, deler awk-kommandoen posten avgrenset med blanktegn som standard og lagrer den i $n-variablene. Hvis linjen har 4 ord, vil den lagres i henholdsvis $1, $2, $3 og $4. Dessuten representerer $0 hele linjen.
$ awk '{print $1,$4}' employee.txt> Produksjon:
ajay 45000 sunil 25000 varun 50000 amit 47000 tarun 15000 deepak 23000 sunil 13000 satvik 80000>
I eksemplet ovenfor representerer $1 og $4 henholdsvis navn og lønnsfelt.
Innebygde variabler i Awk
Awks innebygde variabler inkluderer feltvariablene - $1, $2, $3 og så videre ($0 er hele linjen) - som bryter en tekstlinje i individuelle ord eller deler kalt felt.
NR: NR-kommandoen holder en gjeldende telling av antall inngangsposter. Husk at poster vanligvis er linjer. Awk-kommandoen utfører mønster-/handlingssetningene én gang for hver post i en fil. NF: NF-kommandoen holder en telling av antall felt innenfor gjeldende inngangspost. FS: FS-kommandoen inneholder feltseparatortegnet som brukes til å dele felt på inndatalinjen. Standard er mellomrom, som betyr mellomrom og tabulatortegn. FS kan omdisponeres til et annet tegn (vanligvis i BEGIN) for å endre feltskilletegn. RS: RS-kommandoen lagrer gjeldende postskilletegn. Siden en inndatalinje som standard er inngangsposten, er standard postskilletegn en ny linje. OFS: OFS-kommandoen lagrer utdatafeltseparatoren, som skiller feltene når Awk skriver dem ut. Standard er et tomt mellomrom. Når utskrift har flere parametere atskilt med komma, vil den skrive ut verdien av OFS mellom hver parameter. ORS: ORS-kommandoen lagrer utdatapostseparatoren, som skiller utdatalinjene når Awk skriver dem ut. Standard er et linjeskifttegn. print sender automatisk ut innholdet i ORS på slutten av det det er gitt til utskrift.
Eksempler:
Bruk av NR innebygde variabler (visningslinjenummer)
$ awk '{print NR,$0}' employee.txt> Produksjon:
1 ajay manager account 45000 2 sunil clerk account 25000 3 varun manager sales 50000 4 amit manager account 47000 5 tarun peon sales 15000 6 deepak clerk sales 23000 7 sunil peon sales 13000 8 satvik director purchase 80000>
I eksemplet ovenfor skriver awk-kommandoen med NR ut alle linjene sammen med linjenummeret.
Bruk av innebygde NF-variabler (Vis siste felt)
$ awk '{print $1,$NF}' employee.txt> Produksjon:
ajay 45000 sunil 25000 varun 50000 amit 47000 tarun 15000 deepak 23000 sunil 13000 satvik 80000>
I eksemplet ovenfor representerer $1 Navn og $NF representerer lønn. Vi kan få lønnen ved å bruke $NF , der $NF representerer siste felt.
En annen bruk av NR innebygde variabler (visningslinje fra 3 til 6)
$ awk 'NR==3, NR==6 {print NR,$0}' employee.txt> Produksjon:
3 varun manager sales 50000 4 amit manager account 47000 5 tarun peon sales 15000 6 deepak clerk sales 23000>
Flere eksempler
For den gitte tekstfilen:
$cat>geeksforgeeks.txt A B C Tarun A12 1 Man B6 2 Praveen M42 3>
1) For å skrive ut det første elementet sammen med radnummeret (NR) atskilt med – fra hver linje i geeksforgeeks.txt:
$ awk '{print NR '- ' $1 }' geeksforgeeks.txt> 1 - A 2 - Tarun 3 – Manav 4 - Praveen>
2) For å returnere den andre kolonnen/elementet fra geeksforgeeks.txt:
Spørsmålet bør være:- For å returnere den andre kolonnen/elementet fra geeksforgeeks.txt:
$ awk '{print $2}' geeksforgeeks.txt> B A12 B6 M42>
3) For å skrive ut en ikke-tom linje hvis den finnes
$ awk 'NF <0' geeksforgeeks.txt>
her skal NF være 0 ikke mindre enn, og brukeren må også skrive ut linjenummeret:
riktig svar : awk ‘NF == 0 {print NR}’ geeksforgeeks.txt
ELLER
awk ‘NF <= 0 {print NR}’ geeksforgeeks.txt
0>
4) For å finne lengden på den lengste linjen i filen:
$ awk '{ if (length($0)>max) max = length($0) } END { print max }' geeksforgeeks.txt> 13>
5) For å telle linjene i en fil:
$ awk 'END { print NR }' geeksforgeeks.txt> 3>
6) Skrive ut linjer med mer enn 10 tegn:
$ awk 'length($0)>10' geeksforgeeks.txt>
Tarun A12 1 Praveen M42 3>
7) For å finne/sjekke etter en streng i en bestemt kolonne:
$ awk '{ if($3 == 'B6') print $0;}' geeksforgeeks.txt> 8) For å skrive ut kvadratene til de første tallene fra 1 til n si 6:
$ awk 'BEGIN { for(i=1;i<=6;i++) print 'square of', i, 'is',i*i; }'> square of 1 is 1 square of 2 is 4 square of 3 is 9 square of 4 is 16 square of 5 is 25 square of 6 is 36>
}' employee.txt> Produksjon:
1 ajay manager account 45000 2 sunil clerk account 25000 3 varun manager sales 50000 4 amit manager account 47000 5 tarun peon sales 15000 6 deepak clerk sales 23000 7 sunil peon sales 13000 8 satvik director purchase 80000>
I eksemplet ovenfor skriver awk-kommandoen med NR ut alle linjene sammen med linjenummeret.
Bruk av innebygde NF-variabler (Vis siste felt)
$ awk '{print ,$NF}' employee.txt> Produksjon:
ajay 45000 sunil 25000 varun 50000 amit 47000 tarun 15000 deepak 23000 sunil 13000 satvik 80000>
I eksemplet ovenfor representerer Navn og $NF representerer lønn. Vi kan få lønnen ved å bruke $NF , der $NF representerer siste felt.
En annen bruk av NR innebygde variabler (visningslinje fra 3 til 6)
$ awk 'NR==3, NR==6 {print NR,Awk er et skriptspråk som brukes til å manipulere data og generere rapporter. Programmeringsspråket awk kommando krever ingen kompilering og lar brukeren bruke variabler, numeriske funksjoner, strengfunksjoner og logiske operatorer.
Awk er et verktøy som gjør det mulig for en programmerer å skrive bittesmå, men effektive programmer i form av utsagn som definerer tekstmønstre som skal søkes etter i hver linje i et dokument og handlingen som skal utføres når et samsvar blir funnet i et dokument. linje. Awk brukes mest til mønsterskanning og prosessering. Den søker i én eller flere filer for å se om de inneholder linjer som samsvarer med de angitte mønstrene og utfører deretter de tilknyttede handlingene.
Awk er forkortet fra navnene på utviklerne - Aho, Weinberger og Kernighan.
HVA KAN VI GJØRE MED AWK?
1. AWK-operasjoner:
(a) Skanner en fil linje for linje
(b) Deler hver inndatalinje i felt
(c) Sammenligner inndatalinje/felt med mønster
(d) Utfører handling(er) på samsvarende linjer
2. Nyttig for:
(a) Transform datafiler
(b) Lag formaterte rapporter
3. Programmeringskonstruksjoner:
(a) Formater utdatalinjer
(b) Aritmetikk og strengoperasjoner
(c) Betingelser og løkker
Syntaks:
awk options 'selection _criteria {action }' input-file>utdatafil> Alternativer:
-f program-file : Reads the AWK program source from the file program-file, instead of from the first command line argument. -F fs : Use fs for the input field separator>
Eksempel på kommandoer
Eksempel:
Betrakt følgende tekstfil som inndatafil for alle tilfeller nedenfor:
$cat>ansatt.txt>
ajay manager account 45000 sunil clerk account 25000 varun manager sales 50000 amit manager account 47000 tarun peon sales 15000 deepak clerk sales 23000 sunil peon sales 13000 satvik director purchase 80000>
1. Standard oppførsel for Awk: Som standard skriver Awk ut hver linje med data fra den angitte filen.
$ awk '{print}' employee.txt> Produksjon:
ajay manager account 45000 sunil clerk account 25000 varun manager sales 50000 amit manager account 47000 tarun peon sales 15000 deepak clerk sales 23000 sunil peon sales 13000 satvik director purchase 80000>
I eksemplet ovenfor er det ikke gitt noe mønster. Så handlingene gjelder for alle linjene. Handlingsutskrift uten argumenter skriver ut hele linjen som standard, slik at den skriver ut alle linjene i filen uten feil.
2. Skriv ut linjene som samsvarer med det gitte mønsteret.
$ awk '/manager/ {print}' employee.txt> Produksjon:
ajay manager account 45000 varun manager sales 50000 amit manager account 47000>
I eksemplet ovenfor skriver awk-kommandoen ut all linjen som samsvarer med 'manageren'.
3. Dele en linje i felt: For hver post, dvs. linje, deler awk-kommandoen posten avgrenset med blanktegn som standard og lagrer den i $n-variablene. Hvis linjen har 4 ord, vil den lagres i henholdsvis $1, $2, $3 og $4. Dessuten representerer $0 hele linjen.
$ awk '{print $1,$4}' employee.txt> Produksjon:
ajay 45000 sunil 25000 varun 50000 amit 47000 tarun 15000 deepak 23000 sunil 13000 satvik 80000>
I eksemplet ovenfor representerer $1 og $4 henholdsvis navn og lønnsfelt.
Innebygde variabler i Awk
Awks innebygde variabler inkluderer feltvariablene - $1, $2, $3 og så videre ($0 er hele linjen) - som bryter en tekstlinje i individuelle ord eller deler kalt felt.
NR: NR-kommandoen holder en gjeldende telling av antall inngangsposter. Husk at poster vanligvis er linjer. Awk-kommandoen utfører mønster-/handlingssetningene én gang for hver post i en fil. NF: NF-kommandoen holder en telling av antall felt innenfor gjeldende inngangspost. FS: FS-kommandoen inneholder feltseparatortegnet som brukes til å dele felt på inndatalinjen. Standard er mellomrom, som betyr mellomrom og tabulatortegn. FS kan omdisponeres til et annet tegn (vanligvis i BEGIN) for å endre feltskilletegn. RS: RS-kommandoen lagrer gjeldende postskilletegn. Siden en inndatalinje som standard er inngangsposten, er standard postskilletegn en ny linje. OFS: OFS-kommandoen lagrer utdatafeltseparatoren, som skiller feltene når Awk skriver dem ut. Standard er et tomt mellomrom. Når utskrift har flere parametere atskilt med komma, vil den skrive ut verdien av OFS mellom hver parameter. ORS: ORS-kommandoen lagrer utdatapostseparatoren, som skiller utdatalinjene når Awk skriver dem ut. Standard er et linjeskifttegn. print sender automatisk ut innholdet i ORS på slutten av det det er gitt til utskrift.
Eksempler:
Bruk av NR innebygde variabler (visningslinjenummer)
$ awk '{print NR,$0}' employee.txt> Produksjon:
1 ajay manager account 45000 2 sunil clerk account 25000 3 varun manager sales 50000 4 amit manager account 47000 5 tarun peon sales 15000 6 deepak clerk sales 23000 7 sunil peon sales 13000 8 satvik director purchase 80000>
I eksemplet ovenfor skriver awk-kommandoen med NR ut alle linjene sammen med linjenummeret.
Bruk av innebygde NF-variabler (Vis siste felt)
$ awk '{print $1,$NF}' employee.txt> Produksjon:
ajay 45000 sunil 25000 varun 50000 amit 47000 tarun 15000 deepak 23000 sunil 13000 satvik 80000>
I eksemplet ovenfor representerer $1 Navn og $NF representerer lønn. Vi kan få lønnen ved å bruke $NF , der $NF representerer siste felt.
En annen bruk av NR innebygde variabler (visningslinje fra 3 til 6)
$ awk 'NR==3, NR==6 {print NR,$0}' employee.txt> Produksjon:
3 varun manager sales 50000 4 amit manager account 47000 5 tarun peon sales 15000 6 deepak clerk sales 23000>
Flere eksempler
For den gitte tekstfilen:
$cat>geeksforgeeks.txt A B C Tarun A12 1 Man B6 2 Praveen M42 3>
1) For å skrive ut det første elementet sammen med radnummeret (NR) atskilt med – fra hver linje i geeksforgeeks.txt:
$ awk '{print NR '- ' $1 }' geeksforgeeks.txt> 1 - A 2 - Tarun 3 – Manav 4 - Praveen>
2) For å returnere den andre kolonnen/elementet fra geeksforgeeks.txt:
Spørsmålet bør være:- For å returnere den andre kolonnen/elementet fra geeksforgeeks.txt:
$ awk '{print $2}' geeksforgeeks.txt> B A12 B6 M42>
3) For å skrive ut en ikke-tom linje hvis den finnes
$ awk 'NF <0' geeksforgeeks.txt>
her skal NF være 0 ikke mindre enn, og brukeren må også skrive ut linjenummeret:
riktig svar : awk ‘NF == 0 {print NR}’ geeksforgeeks.txt
ELLER
awk ‘NF <= 0 {print NR}’ geeksforgeeks.txt
0>
4) For å finne lengden på den lengste linjen i filen:
$ awk '{ if (length($0)>max) max = length($0) } END { print max }' geeksforgeeks.txt> 13>
5) For å telle linjene i en fil:
$ awk 'END { print NR }' geeksforgeeks.txt> 3>
6) Skrive ut linjer med mer enn 10 tegn:
$ awk 'length($0)>10' geeksforgeeks.txt>
Tarun A12 1 Praveen M42 3>
7) For å finne/sjekke etter en streng i en bestemt kolonne:
$ awk '{ if($3 == 'B6') print $0;}' geeksforgeeks.txt> 8) For å skrive ut kvadratene til de første tallene fra 1 til n si 6:
$ awk 'BEGIN { for(i=1;i<=6;i++) print 'square of', i, 'is',i*i; }'> square of 1 is 1 square of 2 is 4 square of 3 is 9 square of 4 is 16 square of 5 is 25 square of 6 is 36>
}' employee.txt> Produksjon:
3 varun manager sales 50000 4 amit manager account 47000 5 tarun peon sales 15000 6 deepak clerk sales 23000>
Flere eksempler
For den gitte tekstfilen:
$cat>geeksforgeeks.txt A B C Tarun A12 1 Man B6 2 Praveen M42 3>
1) For å skrive ut det første elementet sammen med radnummeret (NR) atskilt med – fra hver linje i geeksforgeeks.txt:
$ awk '{print NR '- ' }' geeksforgeeks.txt> 1 - A 2 - Tarun 3 – Manav 4 - Praveen>
2) For å returnere den andre kolonnen/elementet fra geeksforgeeks.txt:
Spørsmålet bør være:- For å returnere den andre kolonnen/elementet fra geeksforgeeks.txt:
$ awk '{print }' geeksforgeeks.txt> B A12 B6 M42>
3) For å skrive ut en ikke-tom linje hvis den finnes
$ awk 'NF <0' geeksforgeeks.txt>
her skal NF være 0 ikke mindre enn, og brukeren må også skrive ut linjenummeret:
riktig svar : awk ‘NF == 0 {print NR}’ geeksforgeeks.txt
ELLER
awk ‘NF <= 0 {print NR}’ geeksforgeeks.txt
0>
4) For å finne lengden på den lengste linjen i filen:
$ awk '{ if (length(Awk er et skriptspråk som brukes til å manipulere data og generere rapporter. Programmeringsspråket awk kommando krever ingen kompilering og lar brukeren bruke variabler, numeriske funksjoner, strengfunksjoner og logiske operatorer.
Awk er et verktøy som gjør det mulig for en programmerer å skrive bittesmå, men effektive programmer i form av utsagn som definerer tekstmønstre som skal søkes etter i hver linje i et dokument og handlingen som skal utføres når et samsvar blir funnet i et dokument. linje. Awk brukes mest til mønsterskanning og prosessering. Den søker i én eller flere filer for å se om de inneholder linjer som samsvarer med de angitte mønstrene og utfører deretter de tilknyttede handlingene.
Awk er forkortet fra navnene på utviklerne - Aho, Weinberger og Kernighan.
HVA KAN VI GJØRE MED AWK?
1. AWK-operasjoner:
(a) Skanner en fil linje for linje
(b) Deler hver inndatalinje i felt
(c) Sammenligner inndatalinje/felt med mønster
(d) Utfører handling(er) på samsvarende linjer
2. Nyttig for:
(a) Transform datafiler
(b) Lag formaterte rapporter
3. Programmeringskonstruksjoner:
(a) Formater utdatalinjer
(b) Aritmetikk og strengoperasjoner
(c) Betingelser og løkker
Syntaks:
awk options 'selection _criteria {action }' input-file>utdatafil> Alternativer:
-f program-file : Reads the AWK program source from the file program-file, instead of from the first command line argument. -F fs : Use fs for the input field separator>
Eksempel på kommandoer
Eksempel:
Betrakt følgende tekstfil som inndatafil for alle tilfeller nedenfor:
$cat>ansatt.txt>
ajay manager account 45000 sunil clerk account 25000 varun manager sales 50000 amit manager account 47000 tarun peon sales 15000 deepak clerk sales 23000 sunil peon sales 13000 satvik director purchase 80000>
1. Standard oppførsel for Awk: Som standard skriver Awk ut hver linje med data fra den angitte filen.
$ awk '{print}' employee.txt> Produksjon:
ajay manager account 45000 sunil clerk account 25000 varun manager sales 50000 amit manager account 47000 tarun peon sales 15000 deepak clerk sales 23000 sunil peon sales 13000 satvik director purchase 80000>
I eksemplet ovenfor er det ikke gitt noe mønster. Så handlingene gjelder for alle linjene. Handlingsutskrift uten argumenter skriver ut hele linjen som standard, slik at den skriver ut alle linjene i filen uten feil.
2. Skriv ut linjene som samsvarer med det gitte mønsteret.
$ awk '/manager/ {print}' employee.txt> Produksjon:
ajay manager account 45000 varun manager sales 50000 amit manager account 47000>
I eksemplet ovenfor skriver awk-kommandoen ut all linjen som samsvarer med 'manageren'.
3. Dele en linje i felt: For hver post, dvs. linje, deler awk-kommandoen posten avgrenset med blanktegn som standard og lagrer den i $n-variablene. Hvis linjen har 4 ord, vil den lagres i henholdsvis $1, $2, $3 og $4. Dessuten representerer $0 hele linjen.
$ awk '{print $1,$4}' employee.txt> Produksjon:
ajay 45000 sunil 25000 varun 50000 amit 47000 tarun 15000 deepak 23000 sunil 13000 satvik 80000>
I eksemplet ovenfor representerer $1 og $4 henholdsvis navn og lønnsfelt.
Innebygde variabler i Awk
Awks innebygde variabler inkluderer feltvariablene - $1, $2, $3 og så videre ($0 er hele linjen) - som bryter en tekstlinje i individuelle ord eller deler kalt felt.
NR: NR-kommandoen holder en gjeldende telling av antall inngangsposter. Husk at poster vanligvis er linjer. Awk-kommandoen utfører mønster-/handlingssetningene én gang for hver post i en fil. NF: NF-kommandoen holder en telling av antall felt innenfor gjeldende inngangspost. FS: FS-kommandoen inneholder feltseparatortegnet som brukes til å dele felt på inndatalinjen. Standard er mellomrom, som betyr mellomrom og tabulatortegn. FS kan omdisponeres til et annet tegn (vanligvis i BEGIN) for å endre feltskilletegn. RS: RS-kommandoen lagrer gjeldende postskilletegn. Siden en inndatalinje som standard er inngangsposten, er standard postskilletegn en ny linje. OFS: OFS-kommandoen lagrer utdatafeltseparatoren, som skiller feltene når Awk skriver dem ut. Standard er et tomt mellomrom. Når utskrift har flere parametere atskilt med komma, vil den skrive ut verdien av OFS mellom hver parameter. ORS: ORS-kommandoen lagrer utdatapostseparatoren, som skiller utdatalinjene når Awk skriver dem ut. Standard er et linjeskifttegn. print sender automatisk ut innholdet i ORS på slutten av det det er gitt til utskrift.
Eksempler:
Bruk av NR innebygde variabler (visningslinjenummer)
$ awk '{print NR,$0}' employee.txt> Produksjon:
1 ajay manager account 45000 2 sunil clerk account 25000 3 varun manager sales 50000 4 amit manager account 47000 5 tarun peon sales 15000 6 deepak clerk sales 23000 7 sunil peon sales 13000 8 satvik director purchase 80000>
I eksemplet ovenfor skriver awk-kommandoen med NR ut alle linjene sammen med linjenummeret.
Bruk av innebygde NF-variabler (Vis siste felt)
$ awk '{print $1,$NF}' employee.txt> Produksjon:
ajay 45000 sunil 25000 varun 50000 amit 47000 tarun 15000 deepak 23000 sunil 13000 satvik 80000>
I eksemplet ovenfor representerer $1 Navn og $NF representerer lønn. Vi kan få lønnen ved å bruke $NF , der $NF representerer siste felt.
En annen bruk av NR innebygde variabler (visningslinje fra 3 til 6)
$ awk 'NR==3, NR==6 {print NR,$0}' employee.txt> Produksjon:
3 varun manager sales 50000 4 amit manager account 47000 5 tarun peon sales 15000 6 deepak clerk sales 23000>
Flere eksempler
For den gitte tekstfilen:
$cat>geeksforgeeks.txt A B C Tarun A12 1 Man B6 2 Praveen M42 3>
1) For å skrive ut det første elementet sammen med radnummeret (NR) atskilt med – fra hver linje i geeksforgeeks.txt:
$ awk '{print NR '- ' $1 }' geeksforgeeks.txt> 1 - A 2 - Tarun 3 – Manav 4 - Praveen>
2) For å returnere den andre kolonnen/elementet fra geeksforgeeks.txt:
Spørsmålet bør være:- For å returnere den andre kolonnen/elementet fra geeksforgeeks.txt:
$ awk '{print $2}' geeksforgeeks.txt> B A12 B6 M42>
3) For å skrive ut en ikke-tom linje hvis den finnes
$ awk 'NF <0' geeksforgeeks.txt>
her skal NF være 0 ikke mindre enn, og brukeren må også skrive ut linjenummeret:
riktig svar : awk ‘NF == 0 {print NR}’ geeksforgeeks.txt
ELLER
awk ‘NF <= 0 {print NR}’ geeksforgeeks.txt
0>
4) For å finne lengden på den lengste linjen i filen:
$ awk '{ if (length($0)>max) max = length($0) } END { print max }' geeksforgeeks.txt> 13>
5) For å telle linjene i en fil:
$ awk 'END { print NR }' geeksforgeeks.txt> 3>
6) Skrive ut linjer med mer enn 10 tegn:
$ awk 'length($0)>10' geeksforgeeks.txt>
Tarun A12 1 Praveen M42 3>
7) For å finne/sjekke etter en streng i en bestemt kolonne:
$ awk '{ if($3 == 'B6') print $0;}' geeksforgeeks.txt> 8) For å skrive ut kvadratene til de første tallene fra 1 til n si 6:
$ awk 'BEGIN { for(i=1;i<=6;i++) print 'square of', i, 'is',i*i; }'> square of 1 is 1 square of 2 is 4 square of 3 is 9 square of 4 is 16 square of 5 is 25 square of 6 is 36>
)>max) max = length(Awk er et skriptspråk som brukes til å manipulere data og generere rapporter. Programmeringsspråket awk kommando krever ingen kompilering og lar brukeren bruke variabler, numeriske funksjoner, strengfunksjoner og logiske operatorer.
Awk er et verktøy som gjør det mulig for en programmerer å skrive bittesmå, men effektive programmer i form av utsagn som definerer tekstmønstre som skal søkes etter i hver linje i et dokument og handlingen som skal utføres når et samsvar blir funnet i et dokument. linje. Awk brukes mest til mønsterskanning og prosessering. Den søker i én eller flere filer for å se om de inneholder linjer som samsvarer med de angitte mønstrene og utfører deretter de tilknyttede handlingene.
Awk er forkortet fra navnene på utviklerne - Aho, Weinberger og Kernighan.
HVA KAN VI GJØRE MED AWK?
1. AWK-operasjoner:
(a) Skanner en fil linje for linje
(b) Deler hver inndatalinje i felt
(c) Sammenligner inndatalinje/felt med mønster
(d) Utfører handling(er) på samsvarende linjer
2. Nyttig for:
(a) Transform datafiler
(b) Lag formaterte rapporter
3. Programmeringskonstruksjoner:
(a) Formater utdatalinjer
(b) Aritmetikk og strengoperasjoner
(c) Betingelser og løkker
Syntaks:
awk options 'selection _criteria {action }' input-file>utdatafil> Alternativer:
-f program-file : Reads the AWK program source from the file program-file, instead of from the first command line argument. -F fs : Use fs for the input field separator>
Eksempel på kommandoer
Eksempel:
Betrakt følgende tekstfil som inndatafil for alle tilfeller nedenfor:
$cat>ansatt.txt>
ajay manager account 45000 sunil clerk account 25000 varun manager sales 50000 amit manager account 47000 tarun peon sales 15000 deepak clerk sales 23000 sunil peon sales 13000 satvik director purchase 80000>
1. Standard oppførsel for Awk: Som standard skriver Awk ut hver linje med data fra den angitte filen.
$ awk '{print}' employee.txt> Produksjon:
ajay manager account 45000 sunil clerk account 25000 varun manager sales 50000 amit manager account 47000 tarun peon sales 15000 deepak clerk sales 23000 sunil peon sales 13000 satvik director purchase 80000>
I eksemplet ovenfor er det ikke gitt noe mønster. Så handlingene gjelder for alle linjene. Handlingsutskrift uten argumenter skriver ut hele linjen som standard, slik at den skriver ut alle linjene i filen uten feil.
2. Skriv ut linjene som samsvarer med det gitte mønsteret.
$ awk '/manager/ {print}' employee.txt> Produksjon:
ajay manager account 45000 varun manager sales 50000 amit manager account 47000>
I eksemplet ovenfor skriver awk-kommandoen ut all linjen som samsvarer med 'manageren'.
3. Dele en linje i felt: For hver post, dvs. linje, deler awk-kommandoen posten avgrenset med blanktegn som standard og lagrer den i $n-variablene. Hvis linjen har 4 ord, vil den lagres i henholdsvis $1, $2, $3 og $4. Dessuten representerer $0 hele linjen.
$ awk '{print $1,$4}' employee.txt> Produksjon:
ajay 45000 sunil 25000 varun 50000 amit 47000 tarun 15000 deepak 23000 sunil 13000 satvik 80000>
I eksemplet ovenfor representerer $1 og $4 henholdsvis navn og lønnsfelt.
Innebygde variabler i Awk
Awks innebygde variabler inkluderer feltvariablene - $1, $2, $3 og så videre ($0 er hele linjen) - som bryter en tekstlinje i individuelle ord eller deler kalt felt.
NR: NR-kommandoen holder en gjeldende telling av antall inngangsposter. Husk at poster vanligvis er linjer. Awk-kommandoen utfører mønster-/handlingssetningene én gang for hver post i en fil. NF: NF-kommandoen holder en telling av antall felt innenfor gjeldende inngangspost. FS: FS-kommandoen inneholder feltseparatortegnet som brukes til å dele felt på inndatalinjen. Standard er mellomrom, som betyr mellomrom og tabulatortegn. FS kan omdisponeres til et annet tegn (vanligvis i BEGIN) for å endre feltskilletegn. RS: RS-kommandoen lagrer gjeldende postskilletegn. Siden en inndatalinje som standard er inngangsposten, er standard postskilletegn en ny linje. OFS: OFS-kommandoen lagrer utdatafeltseparatoren, som skiller feltene når Awk skriver dem ut. Standard er et tomt mellomrom. Når utskrift har flere parametere atskilt med komma, vil den skrive ut verdien av OFS mellom hver parameter. ORS: ORS-kommandoen lagrer utdatapostseparatoren, som skiller utdatalinjene når Awk skriver dem ut. Standard er et linjeskifttegn. print sender automatisk ut innholdet i ORS på slutten av det det er gitt til utskrift.
Eksempler:
Bruk av NR innebygde variabler (visningslinjenummer)
$ awk '{print NR,$0}' employee.txt> Produksjon:
1 ajay manager account 45000 2 sunil clerk account 25000 3 varun manager sales 50000 4 amit manager account 47000 5 tarun peon sales 15000 6 deepak clerk sales 23000 7 sunil peon sales 13000 8 satvik director purchase 80000>
I eksemplet ovenfor skriver awk-kommandoen med NR ut alle linjene sammen med linjenummeret.
Bruk av innebygde NF-variabler (Vis siste felt)
$ awk '{print $1,$NF}' employee.txt> Produksjon:
ajay 45000 sunil 25000 varun 50000 amit 47000 tarun 15000 deepak 23000 sunil 13000 satvik 80000>
I eksemplet ovenfor representerer $1 Navn og $NF representerer lønn. Vi kan få lønnen ved å bruke $NF , der $NF representerer siste felt.
En annen bruk av NR innebygde variabler (visningslinje fra 3 til 6)
$ awk 'NR==3, NR==6 {print NR,$0}' employee.txt> Produksjon:
3 varun manager sales 50000 4 amit manager account 47000 5 tarun peon sales 15000 6 deepak clerk sales 23000>
Flere eksempler
For den gitte tekstfilen:
$cat>geeksforgeeks.txt A B C Tarun A12 1 Man B6 2 Praveen M42 3>
1) For å skrive ut det første elementet sammen med radnummeret (NR) atskilt med – fra hver linje i geeksforgeeks.txt:
$ awk '{print NR '- ' $1 }' geeksforgeeks.txt> 1 - A 2 - Tarun 3 – Manav 4 - Praveen>
2) For å returnere den andre kolonnen/elementet fra geeksforgeeks.txt:
Spørsmålet bør være:- For å returnere den andre kolonnen/elementet fra geeksforgeeks.txt:
$ awk '{print $2}' geeksforgeeks.txt> B A12 B6 M42>
3) For å skrive ut en ikke-tom linje hvis den finnes
$ awk 'NF <0' geeksforgeeks.txt>
her skal NF være 0 ikke mindre enn, og brukeren må også skrive ut linjenummeret:
riktig svar : awk ‘NF == 0 {print NR}’ geeksforgeeks.txt
ELLER
awk ‘NF <= 0 {print NR}’ geeksforgeeks.txt
0>
4) For å finne lengden på den lengste linjen i filen:
$ awk '{ if (length($0)>max) max = length($0) } END { print max }' geeksforgeeks.txt> 13>
5) For å telle linjene i en fil:
$ awk 'END { print NR }' geeksforgeeks.txt> 3>
6) Skrive ut linjer med mer enn 10 tegn:
$ awk 'length($0)>10' geeksforgeeks.txt>
Tarun A12 1 Praveen M42 3>
7) For å finne/sjekke etter en streng i en bestemt kolonne:
$ awk '{ if($3 == 'B6') print $0;}' geeksforgeeks.txt> 8) For å skrive ut kvadratene til de første tallene fra 1 til n si 6:
$ awk 'BEGIN { for(i=1;i<=6;i++) print 'square of', i, 'is',i*i; }'> square of 1 is 1 square of 2 is 4 square of 3 is 9 square of 4 is 16 square of 5 is 25 square of 6 is 36>
) } END { print max }' geeksforgeeks.txt> 13>
5) For å telle linjene i en fil:
$ awk 'END { print NR }' geeksforgeeks.txt> 3>
6) Skrive ut linjer med mer enn 10 tegn:
$ awk 'length()>10' geeksforgeeks.txt> Awk er et skriptspråk som brukes til å manipulere data og generere rapporter. Programmeringsspråket awk kommando krever ingen kompilering og lar brukeren bruke variabler, numeriske funksjoner, strengfunksjoner og logiske operatorer.
Awk er et verktøy som gjør det mulig for en programmerer å skrive bittesmå, men effektive programmer i form av utsagn som definerer tekstmønstre som skal søkes etter i hver linje i et dokument og handlingen som skal utføres når et samsvar blir funnet i et dokument. linje. Awk brukes mest til mønsterskanning og prosessering. Den søker i én eller flere filer for å se om de inneholder linjer som samsvarer med de angitte mønstrene og utfører deretter de tilknyttede handlingene.
Awk er forkortet fra navnene på utviklerne - Aho, Weinberger og Kernighan.
HVA KAN VI GJØRE MED AWK?
1. AWK-operasjoner:
(a) Skanner en fil linje for linje
(b) Deler hver inndatalinje i felt
(c) Sammenligner inndatalinje/felt med mønster
(d) Utfører handling(er) på samsvarende linjer2. Nyttig for:
(a) Transform datafiler
(b) Lag formaterte rapporter3. Programmeringskonstruksjoner:
(a) Formater utdatalinjer
(b) Aritmetikk og strengoperasjoner
(c) Betingelser og løkkerSyntaks:
awk options 'selection _criteria {action }' input-file>utdatafil>Alternativer:
-f program-file : Reads the AWK program source from the file program-file, instead of from the first command line argument. -F fs : Use fs for the input field separator>Eksempel på kommandoer
Eksempel:
Betrakt følgende tekstfil som inndatafil for alle tilfeller nedenfor:
$cat>ansatt.txt>ajay manager account 45000 sunil clerk account 25000 varun manager sales 50000 amit manager account 47000 tarun peon sales 15000 deepak clerk sales 23000 sunil peon sales 13000 satvik director purchase 80000>1. Standard oppførsel for Awk: Som standard skriver Awk ut hver linje med data fra den angitte filen.
$ awk '{print}' employee.txt>Produksjon:
ajay manager account 45000 sunil clerk account 25000 varun manager sales 50000 amit manager account 47000 tarun peon sales 15000 deepak clerk sales 23000 sunil peon sales 13000 satvik director purchase 80000>I eksemplet ovenfor er det ikke gitt noe mønster. Så handlingene gjelder for alle linjene. Handlingsutskrift uten argumenter skriver ut hele linjen som standard, slik at den skriver ut alle linjene i filen uten feil.
2. Skriv ut linjene som samsvarer med det gitte mønsteret.
$ awk '/manager/ {print}' employee.txt>Produksjon:
ajay manager account 45000 varun manager sales 50000 amit manager account 47000>I eksemplet ovenfor skriver awk-kommandoen ut all linjen som samsvarer med 'manageren'.
3. Dele en linje i felt: For hver post, dvs. linje, deler awk-kommandoen posten avgrenset med blanktegn som standard og lagrer den i $n-variablene. Hvis linjen har 4 ord, vil den lagres i henholdsvis $1, $2, $3 og $4. Dessuten representerer $0 hele linjen.
$ awk '{print $1,$4}' employee.txt>Produksjon:
ajay 45000 sunil 25000 varun 50000 amit 47000 tarun 15000 deepak 23000 sunil 13000 satvik 80000>I eksemplet ovenfor representerer $1 og $4 henholdsvis navn og lønnsfelt.
Innebygde variabler i Awk
Awks innebygde variabler inkluderer feltvariablene - $1, $2, $3 og så videre ($0 er hele linjen) - som bryter en tekstlinje i individuelle ord eller deler kalt felt.
NR: NR-kommandoen holder en gjeldende telling av antall inngangsposter. Husk at poster vanligvis er linjer. Awk-kommandoen utfører mønster-/handlingssetningene én gang for hver post i en fil. NF: NF-kommandoen holder en telling av antall felt innenfor gjeldende inngangspost. FS: FS-kommandoen inneholder feltseparatortegnet som brukes til å dele felt på inndatalinjen. Standard er mellomrom, som betyr mellomrom og tabulatortegn. FS kan omdisponeres til et annet tegn (vanligvis i BEGIN) for å endre feltskilletegn. RS: RS-kommandoen lagrer gjeldende postskilletegn. Siden en inndatalinje som standard er inngangsposten, er standard postskilletegn en ny linje. OFS: OFS-kommandoen lagrer utdatafeltseparatoren, som skiller feltene når Awk skriver dem ut. Standard er et tomt mellomrom. Når utskrift har flere parametere atskilt med komma, vil den skrive ut verdien av OFS mellom hver parameter. ORS: ORS-kommandoen lagrer utdatapostseparatoren, som skiller utdatalinjene når Awk skriver dem ut. Standard er et linjeskifttegn. print sender automatisk ut innholdet i ORS på slutten av det det er gitt til utskrift.
Eksempler:
Bruk av NR innebygde variabler (visningslinjenummer)
$ awk '{print NR,$0}' employee.txt>Produksjon:
1 ajay manager account 45000 2 sunil clerk account 25000 3 varun manager sales 50000 4 amit manager account 47000 5 tarun peon sales 15000 6 deepak clerk sales 23000 7 sunil peon sales 13000 8 satvik director purchase 80000>I eksemplet ovenfor skriver awk-kommandoen med NR ut alle linjene sammen med linjenummeret.
Bruk av innebygde NF-variabler (Vis siste felt)
$ awk '{print $1,$NF}' employee.txt>Produksjon:
ajay 45000 sunil 25000 varun 50000 amit 47000 tarun 15000 deepak 23000 sunil 13000 satvik 80000>I eksemplet ovenfor representerer $1 Navn og $NF representerer lønn. Vi kan få lønnen ved å bruke $NF , der $NF representerer siste felt.
En annen bruk av NR innebygde variabler (visningslinje fra 3 til 6)
$ awk 'NR==3, NR==6 {print NR,$0}' employee.txt>Produksjon:
3 varun manager sales 50000 4 amit manager account 47000 5 tarun peon sales 15000 6 deepak clerk sales 23000>Flere eksempler
For den gitte tekstfilen:
$cat>geeksforgeeks.txt A B C Tarun A12 1 Man B6 2 Praveen M42 3>1) For å skrive ut det første elementet sammen med radnummeret (NR) atskilt med – fra hver linje i geeksforgeeks.txt:
$ awk '{print NR '- ' $1 }' geeksforgeeks.txt>1 - A 2 - Tarun 3 – Manav 4 - Praveen>2) For å returnere den andre kolonnen/elementet fra geeksforgeeks.txt:
Spørsmålet bør være:- For å returnere den andre kolonnen/elementet fra geeksforgeeks.txt:
$ awk '{print $2}' geeksforgeeks.txt>B A12 B6 M42>3) For å skrive ut en ikke-tom linje hvis den finnes
$ awk 'NF <0' geeksforgeeks.txt>her skal NF være 0 ikke mindre enn, og brukeren må også skrive ut linjenummeret:
riktig svar : awk ‘NF == 0 {print NR}’ geeksforgeeks.txt
ELLER
awk ‘NF <= 0 {print NR}’ geeksforgeeks.txt
0>4) For å finne lengden på den lengste linjen i filen:
$ awk '{ if (length($0)>max) max = length($0) } END { print max }' geeksforgeeks.txt>13>5) For å telle linjene i en fil:
$ awk 'END { print NR }' geeksforgeeks.txt>3>6) Skrive ut linjer med mer enn 10 tegn:
$ awk 'length($0)>10' geeksforgeeks.txt>Tarun A12 1 Praveen M42 3>7) For å finne/sjekke etter en streng i en bestemt kolonne:
$ awk '{ if($3 == 'B6') print $0;}' geeksforgeeks.txt>8) For å skrive ut kvadratene til de første tallene fra 1 til n si 6:
$ awk 'BEGIN { for(i=1;i<=6;i++) print 'square of', i, 'is',i*i; }'>square of 1 is 1 square of 2 is 4 square of 3 is 9 square of 4 is 16 square of 5 is 25 square of 6 is 36>
Tarun A12 1 Praveen M42 3>
7) For å finne/sjekke etter en streng i en bestemt kolonne:
$ awk '{ if( == 'B6') print Awk er et skriptspråk som brukes til å manipulere data og generere rapporter. Programmeringsspråket awk kommando krever ingen kompilering og lar brukeren bruke variabler, numeriske funksjoner, strengfunksjoner og logiske operatorer.
Awk er et verktøy som gjør det mulig for en programmerer å skrive bittesmå, men effektive programmer i form av utsagn som definerer tekstmønstre som skal søkes etter i hver linje i et dokument og handlingen som skal utføres når et samsvar blir funnet i et dokument. linje. Awk brukes mest til mønsterskanning og prosessering. Den søker i én eller flere filer for å se om de inneholder linjer som samsvarer med de angitte mønstrene og utfører deretter de tilknyttede handlingene.
Awk er forkortet fra navnene på utviklerne - Aho, Weinberger og Kernighan.
HVA KAN VI GJØRE MED AWK?
1. AWK-operasjoner:
(a) Skanner en fil linje for linje
(b) Deler hver inndatalinje i felt
(c) Sammenligner inndatalinje/felt med mønster
(d) Utfører handling(er) på samsvarende linjer
2. Nyttig for:
(a) Transform datafiler
(b) Lag formaterte rapporter
3. Programmeringskonstruksjoner:
(a) Formater utdatalinjer
(b) Aritmetikk og strengoperasjoner
(c) Betingelser og løkker
Syntaks:
awk options 'selection _criteria {action }' input-file>utdatafil> Alternativer:
-f program-file : Reads the AWK program source from the file program-file, instead of from the first command line argument. -F fs : Use fs for the input field separator>
Eksempel på kommandoer
Eksempel:
Betrakt følgende tekstfil som inndatafil for alle tilfeller nedenfor:
$cat>ansatt.txt>
ajay manager account 45000 sunil clerk account 25000 varun manager sales 50000 amit manager account 47000 tarun peon sales 15000 deepak clerk sales 23000 sunil peon sales 13000 satvik director purchase 80000>
1. Standard oppførsel for Awk: Som standard skriver Awk ut hver linje med data fra den angitte filen.
$ awk '{print}' employee.txt> Produksjon:
ajay manager account 45000 sunil clerk account 25000 varun manager sales 50000 amit manager account 47000 tarun peon sales 15000 deepak clerk sales 23000 sunil peon sales 13000 satvik director purchase 80000>
I eksemplet ovenfor er det ikke gitt noe mønster. Så handlingene gjelder for alle linjene. Handlingsutskrift uten argumenter skriver ut hele linjen som standard, slik at den skriver ut alle linjene i filen uten feil.
2. Skriv ut linjene som samsvarer med det gitte mønsteret.
$ awk '/manager/ {print}' employee.txt> Produksjon:
ajay manager account 45000 varun manager sales 50000 amit manager account 47000>
I eksemplet ovenfor skriver awk-kommandoen ut all linjen som samsvarer med 'manageren'.
3. Dele en linje i felt: For hver post, dvs. linje, deler awk-kommandoen posten avgrenset med blanktegn som standard og lagrer den i $n-variablene. Hvis linjen har 4 ord, vil den lagres i henholdsvis $1, $2, $3 og $4. Dessuten representerer $0 hele linjen.
$ awk '{print $1,$4}' employee.txt> Produksjon:
ajay 45000 sunil 25000 varun 50000 amit 47000 tarun 15000 deepak 23000 sunil 13000 satvik 80000>
I eksemplet ovenfor representerer $1 og $4 henholdsvis navn og lønnsfelt.
Innebygde variabler i Awk
Awks innebygde variabler inkluderer feltvariablene - $1, $2, $3 og så videre ($0 er hele linjen) - som bryter en tekstlinje i individuelle ord eller deler kalt felt.
NR: NR-kommandoen holder en gjeldende telling av antall inngangsposter. Husk at poster vanligvis er linjer. Awk-kommandoen utfører mønster-/handlingssetningene én gang for hver post i en fil. NF: NF-kommandoen holder en telling av antall felt innenfor gjeldende inngangspost. FS: FS-kommandoen inneholder feltseparatortegnet som brukes til å dele felt på inndatalinjen. Standard er mellomrom, som betyr mellomrom og tabulatortegn. FS kan omdisponeres til et annet tegn (vanligvis i BEGIN) for å endre feltskilletegn. RS: RS-kommandoen lagrer gjeldende postskilletegn. Siden en inndatalinje som standard er inngangsposten, er standard postskilletegn en ny linje. OFS: OFS-kommandoen lagrer utdatafeltseparatoren, som skiller feltene når Awk skriver dem ut. Standard er et tomt mellomrom. Når utskrift har flere parametere atskilt med komma, vil den skrive ut verdien av OFS mellom hver parameter. ORS: ORS-kommandoen lagrer utdatapostseparatoren, som skiller utdatalinjene når Awk skriver dem ut. Standard er et linjeskifttegn. print sender automatisk ut innholdet i ORS på slutten av det det er gitt til utskrift.
Eksempler:
Bruk av NR innebygde variabler (visningslinjenummer)
$ awk '{print NR,$0}' employee.txt> Produksjon:
1 ajay manager account 45000 2 sunil clerk account 25000 3 varun manager sales 50000 4 amit manager account 47000 5 tarun peon sales 15000 6 deepak clerk sales 23000 7 sunil peon sales 13000 8 satvik director purchase 80000>
I eksemplet ovenfor skriver awk-kommandoen med NR ut alle linjene sammen med linjenummeret.
Bruk av innebygde NF-variabler (Vis siste felt)
$ awk '{print $1,$NF}' employee.txt> Produksjon:
ajay 45000 sunil 25000 varun 50000 amit 47000 tarun 15000 deepak 23000 sunil 13000 satvik 80000>
I eksemplet ovenfor representerer $1 Navn og $NF representerer lønn. Vi kan få lønnen ved å bruke $NF , der $NF representerer siste felt.
En annen bruk av NR innebygde variabler (visningslinje fra 3 til 6)
$ awk 'NR==3, NR==6 {print NR,$0}' employee.txt> Produksjon:
3 varun manager sales 50000 4 amit manager account 47000 5 tarun peon sales 15000 6 deepak clerk sales 23000>
Flere eksempler
For den gitte tekstfilen:
$cat>geeksforgeeks.txt A B C Tarun A12 1 Man B6 2 Praveen M42 3>
1) For å skrive ut det første elementet sammen med radnummeret (NR) atskilt med – fra hver linje i geeksforgeeks.txt:
$ awk '{print NR '- ' $1 }' geeksforgeeks.txt> 1 - A 2 - Tarun 3 – Manav 4 - Praveen>
2) For å returnere den andre kolonnen/elementet fra geeksforgeeks.txt:
Spørsmålet bør være:- For å returnere den andre kolonnen/elementet fra geeksforgeeks.txt:
$ awk '{print $2}' geeksforgeeks.txt> B A12 B6 M42>
3) For å skrive ut en ikke-tom linje hvis den finnes
$ awk 'NF <0' geeksforgeeks.txt>
her skal NF være 0 ikke mindre enn, og brukeren må også skrive ut linjenummeret:
riktig svar : awk ‘NF == 0 {print NR}’ geeksforgeeks.txt
ELLER
awk ‘NF <= 0 {print NR}’ geeksforgeeks.txt
0>
4) For å finne lengden på den lengste linjen i filen:
$ awk '{ if (length($0)>max) max = length($0) } END { print max }' geeksforgeeks.txt> 13>
5) For å telle linjene i en fil:
$ awk 'END { print NR }' geeksforgeeks.txt> 3>
6) Skrive ut linjer med mer enn 10 tegn:
$ awk 'length($0)>10' geeksforgeeks.txt>
Tarun A12 1 Praveen M42 3>
7) For å finne/sjekke etter en streng i en bestemt kolonne:
$ awk '{ if($3 == 'B6') print $0;}' geeksforgeeks.txt> 8) For å skrive ut kvadratene til de første tallene fra 1 til n si 6:
$ awk 'BEGIN { for(i=1;i<=6;i++) print 'square of', i, 'is',i*i; }'> square of 1 is 1 square of 2 is 4 square of 3 is 9 square of 4 is 16 square of 5 is 25 square of 6 is 36>
;}' geeksforgeeks.txt> 8) For å skrive ut kvadratene til de første tallene fra 1 til n si 6:
$ awk 'BEGIN { for(i=1;i<=6;i++) print 'square of', i, 'is',i*i; }'> square of 1 is 1 square of 2 is 4 square of 3 is 9 square of 4 is 16 square of 5 is 25 square of 6 is 36>