Awk er et scriptsprog, der bruges til at manipulere data og generere rapporter. Programmeringssproget awk kommando kræver ingen kompilering og giver brugeren mulighed for at bruge variabler, numeriske funktioner, strengfunktioner og logiske operatorer.
Awk er et værktøj, der gør det muligt for en programmør at skrive bittesmå, men effektive programmer i form af udsagn, der definerer tekstmønstre, der skal søges efter i hver linje i et dokument, og den handling, der skal udføres, når der findes et match i et dokument. linje. Awk bruges mest til mønsterscanning og -behandling. Den søger i en eller flere filer for at se, om de indeholder linjer, der matcher de angivne mønstre, og udfører derefter de tilknyttede handlinger.
Awk er forkortet fra navnene på udviklerne - Aho, Weinberger og Kernighan.
HVAD KAN VI GØRE MED AWK?
1. AWK-operationer:
(a) Scanner en fil linje for linje
(b) Opdeler hver inputlinje i felter
(c) Sammenligner inputlinje/felter med mønster
(d) Udfører handling(er) på matchede linjer
2. Nyttigt til:
(a) Transform datafiler
(b) Fremstil formaterede rapporter
3. Programmeringskonstruktioner:
(a) Formater outputlinjer
(b) Aritmetiske og strengoperationer
(c) Betingelser og sløjfer
Syntaks:
awk options 'selection _criteria {action }' input-file>output-fil> Muligheder:
-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:
Overvej følgende tekstfil som inputfil for alle tilfælde nedenfor:
$cat>medarbejder.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. Standardadfærd for Awk: Som standard udskriver Awk hver linje med data fra den angivne fil.
$ awk '{print}' employee.txt> Produktion:
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 ovenstående eksempel er der ikke angivet noget mønster. Så handlingerne er gældende for alle linjer. Action print uden argument udskriver hele linjen som standard, så det udskriver alle linjerne i filen uden fejl.
2. Udskriv de linjer, der matcher det givne mønster.
$ awk '/manager/ {print}' employee.txt> Produktion:
ajay manager account 45000 varun manager sales 50000 amit manager account 47000>
I ovenstående eksempel udskriver awk-kommandoen hele den linje, der matcher 'manageren'.
3. Opdeling af en linje i felter: For hver post, dvs. linje, opdeler awk-kommandoen posten afgrænset af blanktegn som standard og gemmer den i $n-variablerne. Hvis linjen har 4 ord, vil den blive gemt i henholdsvis , , og . Også Awk er et scriptsprog, der bruges til at manipulere data og generere rapporter. Programmeringssproget awk kommando kræver ingen kompilering og giver brugeren mulighed for at bruge variabler, numeriske funktioner, strengfunktioner og logiske operatorer. Awk er et værktøj, der gør det muligt for en programmør at skrive bittesmå, men effektive programmer i form af udsagn, der definerer tekstmønstre, der skal søges efter i hver linje i et dokument, og den handling, der skal udføres, når der findes et match i et dokument. linje. Awk bruges mest til mønsterscanning og -behandling. Den søger i en eller flere filer for at se, om de indeholder linjer, der matcher de angivne mønstre, og udfører derefter de tilknyttede handlinger. Awk er forkortet fra navnene på udviklerne - Aho, Weinberger og Kernighan. HVAD KAN VI GØRE MED AWK? 1. AWK-operationer: 2. Nyttigt til: 3. Programmeringskonstruktioner: Syntaks: Muligheder: Eksempel på kommandoer Eksempel: Overvej følgende tekstfil som inputfil for alle tilfælde nedenfor: 1. Standardadfærd for Awk: Som standard udskriver Awk hver linje med data fra den angivne fil. Produktion: I ovenstående eksempel er der ikke angivet noget mønster. Så handlingerne er gældende for alle linjer. Action print uden argument udskriver hele linjen som standard, så det udskriver alle linjerne i filen uden fejl. 2. Udskriv de linjer, der matcher det givne mønster. Produktion: I ovenstående eksempel udskriver awk-kommandoen hele den linje, der matcher 'manageren'. 3. Opdeling af en linje i felter: For hver post, dvs. linje, opdeler awk-kommandoen posten afgrænset af blanktegn som standard og gemmer den i $n-variablerne. Hvis linjen har 4 ord, vil den blive gemt i henholdsvis $1, $2, $3 og $4. Også $0 repræsenterer hele linjen. Produktion: I ovenstående eksempel repræsenterer $1 og $4 henholdsvis navn og løn. Indbyggede variabler i Awk Awks indbyggede variable inkluderer feltvariablerne - $1, $2, $3 og så videre ($0 er hele linjen) - der deler en tekstlinje i individuelle ord eller stykker kaldet felter. Eksempler: Brug af NR indbyggede variabler (displaylinjenummer) Produktion: I ovenstående eksempel udskriver awk-kommandoen med NR alle linjerne sammen med linjenummeret. Brug af NF indbyggede variabler (Vis sidste felt) Produktion: I ovenstående eksempel repræsenterer $1 Navn og $NF repræsenterer Løn. Vi kan få løn ved at bruge $NF , hvor $NF repræsenterer sidste felt. En anden brug af NR indbyggede variabler (displaylinje fra 3 til 6) Produktion: Flere eksempler For den givne tekstfil: 1) For at udskrive det første element sammen med rækkenummeret (NR) adskilt med – fra hver linje i geeksforgeeks.txt: 2) Sådan returneres den anden kolonne/vare fra geeksforgeeks.txt: Spørgsmålet skulle være:- For at returnere den anden kolonne/genstand fra geeksforgeeks.txt: 3) At udskrive en ikke-tom linje, hvis den findes her skal NF være 0 ikke mindre end, og brugeren skal også udskrive linjenummeret: korrekt svar : awk ‘NF == 0 {print NR}’ geeksforgeeks.txt ELLER awk ‘NF <= 0 {print NR}’ geeksforgeeks.txt 4) For at finde længden af den længste linje i filen: 5) For at tælle linjerne i en fil: 6) Udskrivning af linjer med mere end 10 tegn: 7) For at finde/kontrollere for en streng i en specifik kolonne: 8) For at udskrive kvadraterne af de første tal fra 1 til n skal du sige 6:
(a) Scanner en fil linje for linje
(b) Opdeler hver inputlinje i felter
(c) Sammenligner inputlinje/felter med mønster
(d) Udfører handling(er) på matchede linjer
(a) Transform datafiler
(b) Fremstil formaterede rapporter
(a) Formater outputlinjer
(b) Aritmetiske og strengoperationer
(c) Betingelser og sløjferawk options 'selection _criteria {action }' input-file>output-fil> -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>medarbejder.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 aktuel optælling af antallet af inputposter. Husk, at poster normalt er linjer. Awk-kommandoen udfører mønster-/handlingssætningerne én gang for hver post i en fil. NF: NF-kommandoen holder en optælling af antallet af felter inden for den aktuelle inputpost. FS: FS-kommandoen indeholder feltseparatortegnet, som bruges til at opdele felter på inputlinjen. Standarden er hvidt mellemrum, hvilket betyder mellemrum og tabulatortegn. FS kan omtildeles til et andet tegn (typisk i BEGIN) for at ændre feltseparatoren. RS: RS-kommandoen gemmer det aktuelle postseparatortegn. Da en inputlinje som standard er inputposten, er standardpostseparatortegnet en ny linje. OFS: OFS-kommandoen gemmer outputfeltseparatoren, som adskiller felterne, når Awk udskriver dem. Standard er et tomt mellemrum. Når print har flere parametre adskilt med kommaer, vil det udskrive værdien af OFS mellem hver parameter. ORS: ORS-kommandoen gemmer outputpostseparatoren, som adskiller outputlinjerne, når Awk udskriver dem. Standard er et linjeskifttegn. print udsender automatisk indholdet af ORS i slutningen af det, det er givet til udskrivning.
$ 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> Produktion:
ajay 45000 sunil 25000 varun 50000 amit 47000 tarun 15000 deepak 23000 sunil 13000 satvik 80000>
I ovenstående eksempel repræsenterer og henholdsvis navn og løn.
Indbyggede variabler i Awk
Awks indbyggede variable inkluderer feltvariablerne - , , og så videre ( Awk er et scriptsprog, der bruges til at manipulere data og generere rapporter. Programmeringssproget awk kommando kræver ingen kompilering og giver brugeren mulighed for at bruge variabler, numeriske funktioner, strengfunktioner og logiske operatorer. Awk er et værktøj, der gør det muligt for en programmør at skrive bittesmå, men effektive programmer i form af udsagn, der definerer tekstmønstre, der skal søges efter i hver linje i et dokument, og den handling, der skal udføres, når der findes et match i et dokument. linje. Awk bruges mest til mønsterscanning og -behandling. Den søger i en eller flere filer for at se, om de indeholder linjer, der matcher de angivne mønstre, og udfører derefter de tilknyttede handlinger. Awk er forkortet fra navnene på udviklerne - Aho, Weinberger og Kernighan. HVAD KAN VI GØRE MED AWK? 1. AWK-operationer: 2. Nyttigt til: 3. Programmeringskonstruktioner: Syntaks: Muligheder: Eksempel på kommandoer Eksempel: Overvej følgende tekstfil som inputfil for alle tilfælde nedenfor: 1. Standardadfærd for Awk: Som standard udskriver Awk hver linje med data fra den angivne fil. Produktion: I ovenstående eksempel er der ikke angivet noget mønster. Så handlingerne er gældende for alle linjer. Action print uden argument udskriver hele linjen som standard, så det udskriver alle linjerne i filen uden fejl. 2. Udskriv de linjer, der matcher det givne mønster. Produktion: I ovenstående eksempel udskriver awk-kommandoen hele den linje, der matcher 'manageren'. 3. Opdeling af en linje i felter: For hver post, dvs. linje, opdeler awk-kommandoen posten afgrænset af blanktegn som standard og gemmer den i $n-variablerne. Hvis linjen har 4 ord, vil den blive gemt i henholdsvis $1, $2, $3 og $4. Også $0 repræsenterer hele linjen. Produktion: I ovenstående eksempel repræsenterer $1 og $4 henholdsvis navn og løn. Indbyggede variabler i Awk Awks indbyggede variable inkluderer feltvariablerne - $1, $2, $3 og så videre ($0 er hele linjen) - der deler en tekstlinje i individuelle ord eller stykker kaldet felter. Eksempler: Brug af NR indbyggede variabler (displaylinjenummer) Produktion: I ovenstående eksempel udskriver awk-kommandoen med NR alle linjerne sammen med linjenummeret. Brug af NF indbyggede variabler (Vis sidste felt) Produktion: I ovenstående eksempel repræsenterer $1 Navn og $NF repræsenterer Løn. Vi kan få løn ved at bruge $NF , hvor $NF repræsenterer sidste felt. En anden brug af NR indbyggede variabler (displaylinje fra 3 til 6) Produktion: Flere eksempler For den givne tekstfil: 1) For at udskrive det første element sammen med rækkenummeret (NR) adskilt med – fra hver linje i geeksforgeeks.txt: 2) Sådan returneres den anden kolonne/vare fra geeksforgeeks.txt: Spørgsmålet skulle være:- For at returnere den anden kolonne/genstand fra geeksforgeeks.txt: 3) At udskrive en ikke-tom linje, hvis den findes her skal NF være 0 ikke mindre end, og brugeren skal også udskrive linjenummeret: korrekt svar : awk ‘NF == 0 {print NR}’ geeksforgeeks.txt ELLER awk ‘NF <= 0 {print NR}’ geeksforgeeks.txt 4) For at finde længden af den længste linje i filen: 5) For at tælle linjerne i en fil: 6) Udskrivning af linjer med mere end 10 tegn: 7) For at finde/kontrollere for en streng i en specifik kolonne: 8) For at udskrive kvadraterne af de første tal fra 1 til n skal du sige 6:
(a) Scanner en fil linje for linje
(b) Opdeler hver inputlinje i felter
(c) Sammenligner inputlinje/felter med mønster
(d) Udfører handling(er) på matchede linjer
(a) Transform datafiler
(b) Fremstil formaterede rapporter
(a) Formater outputlinjer
(b) Aritmetiske og strengoperationer
(c) Betingelser og sløjferawk options 'selection _criteria {action }' input-file>output-fil> -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>medarbejder.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 aktuel optælling af antallet af inputposter. Husk, at poster normalt er linjer. Awk-kommandoen udfører mønster-/handlingssætningerne én gang for hver post i en fil. NF: NF-kommandoen holder en optælling af antallet af felter inden for den aktuelle inputpost. FS: FS-kommandoen indeholder feltseparatortegnet, som bruges til at opdele felter på inputlinjen. Standarden er hvidt mellemrum, hvilket betyder mellemrum og tabulatortegn. FS kan omtildeles til et andet tegn (typisk i BEGIN) for at ændre feltseparatoren. RS: RS-kommandoen gemmer det aktuelle postseparatortegn. Da en inputlinje som standard er inputposten, er standardpostseparatortegnet en ny linje. OFS: OFS-kommandoen gemmer outputfeltseparatoren, som adskiller felterne, når Awk udskriver dem. Standard er et tomt mellemrum. Når print har flere parametre adskilt med kommaer, vil det udskrive værdien af OFS mellem hver parameter. ORS: ORS-kommandoen gemmer outputpostseparatoren, som adskiller outputlinjerne, når Awk udskriver dem. Standard er et linjeskifttegn. print udsender automatisk indholdet af ORS i slutningen af det, det er givet til udskrivning.
$ 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 aktuel optælling af antallet af inputposter. Husk, at poster normalt er linjer. Awk-kommandoen udfører mønster-/handlingssætningerne én gang for hver post i en fil. NF: NF-kommandoen holder en optælling af antallet af felter inden for den aktuelle inputpost. FS: FS-kommandoen indeholder feltseparatortegnet, som bruges til at opdele felter på inputlinjen. Standarden er hvidt mellemrum, hvilket betyder mellemrum og tabulatortegn. FS kan omtildeles til et andet tegn (typisk i BEGIN) for at ændre feltseparatoren. RS: RS-kommandoen gemmer det aktuelle postseparatortegn. Da en inputlinje som standard er inputposten, er standardpostseparatortegnet en ny linje. OFS: OFS-kommandoen gemmer outputfeltseparatoren, som adskiller felterne, når Awk udskriver dem. Standard er et tomt mellemrum. Når print har flere parametre adskilt med kommaer, vil det udskrive værdien af OFS mellem hver parameter. ORS: ORS-kommandoen gemmer outputpostseparatoren, som adskiller outputlinjerne, når Awk udskriver dem. Standard er et linjeskifttegn. print udsender automatisk indholdet af ORS i slutningen af det, det er givet til udskrivning.
Eksempler:
Brug af NR indbyggede variabler (displaylinjenummer)
$ awk '{print NR,Awk er et scriptsprog, der bruges til at manipulere data og generere rapporter. Programmeringssproget awk kommando kræver ingen kompilering og giver brugeren mulighed for at bruge variabler, numeriske funktioner, strengfunktioner og logiske operatorer.
Awk er et værktøj, der gør det muligt for en programmør at skrive bittesmå, men effektive programmer i form af udsagn, der definerer tekstmønstre, der skal søges efter i hver linje i et dokument, og den handling, der skal udføres, når der findes et match i et dokument. linje. Awk bruges mest til mønsterscanning og -behandling. Den søger i en eller flere filer for at se, om de indeholder linjer, der matcher de angivne mønstre, og udfører derefter de tilknyttede handlinger.
Awk er forkortet fra navnene på udviklerne - Aho, Weinberger og Kernighan.
HVAD KAN VI GØRE MED AWK?
1. AWK-operationer:
(a) Scanner en fil linje for linje
(b) Opdeler hver inputlinje i felter
(c) Sammenligner inputlinje/felter med mønster
(d) Udfører handling(er) på matchede linjer
2. Nyttigt til:
(a) Transform datafiler
(b) Fremstil formaterede rapporter
3. Programmeringskonstruktioner:
(a) Formater outputlinjer
(b) Aritmetiske og strengoperationer
(c) Betingelser og sløjfer
Syntaks:
awk options 'selection _criteria {action }' input-file>output-fil> Muligheder:
-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:
Overvej følgende tekstfil som inputfil for alle tilfælde nedenfor:
$cat>medarbejder.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. Standardadfærd for Awk: Som standard udskriver Awk hver linje med data fra den angivne fil.
$ awk '{print}' employee.txt> Produktion:
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 ovenstående eksempel er der ikke angivet noget mønster. Så handlingerne er gældende for alle linjer. Action print uden argument udskriver hele linjen som standard, så det udskriver alle linjerne i filen uden fejl.
2. Udskriv de linjer, der matcher det givne mønster.
$ awk '/manager/ {print}' employee.txt> Produktion:
ajay manager account 45000 varun manager sales 50000 amit manager account 47000>
I ovenstående eksempel udskriver awk-kommandoen hele den linje, der matcher 'manageren'.
3. Opdeling af en linje i felter: For hver post, dvs. linje, opdeler awk-kommandoen posten afgrænset af blanktegn som standard og gemmer den i $n-variablerne. Hvis linjen har 4 ord, vil den blive gemt i henholdsvis $1, $2, $3 og $4. Også $0 repræsenterer hele linjen.
$ awk '{print $1,$4}' employee.txt> Produktion:
ajay 45000 sunil 25000 varun 50000 amit 47000 tarun 15000 deepak 23000 sunil 13000 satvik 80000>
I ovenstående eksempel repræsenterer $1 og $4 henholdsvis navn og løn.
Indbyggede variabler i Awk
Awks indbyggede variable inkluderer feltvariablerne - $1, $2, $3 og så videre ($0 er hele linjen) - der deler en tekstlinje i individuelle ord eller stykker kaldet felter.
NR: NR-kommandoen holder en aktuel optælling af antallet af inputposter. Husk, at poster normalt er linjer. Awk-kommandoen udfører mønster-/handlingssætningerne én gang for hver post i en fil. NF: NF-kommandoen holder en optælling af antallet af felter inden for den aktuelle inputpost. FS: FS-kommandoen indeholder feltseparatortegnet, som bruges til at opdele felter på inputlinjen. Standarden er hvidt mellemrum, hvilket betyder mellemrum og tabulatortegn. FS kan omtildeles til et andet tegn (typisk i BEGIN) for at ændre feltseparatoren. RS: RS-kommandoen gemmer det aktuelle postseparatortegn. Da en inputlinje som standard er inputposten, er standardpostseparatortegnet en ny linje. OFS: OFS-kommandoen gemmer outputfeltseparatoren, som adskiller felterne, når Awk udskriver dem. Standard er et tomt mellemrum. Når print har flere parametre adskilt med kommaer, vil det udskrive værdien af OFS mellem hver parameter. ORS: ORS-kommandoen gemmer outputpostseparatoren, som adskiller outputlinjerne, når Awk udskriver dem. Standard er et linjeskifttegn. print udsender automatisk indholdet af ORS i slutningen af det, det er givet til udskrivning.
Eksempler:
Brug af NR indbyggede variabler (displaylinjenummer)
$ awk '{print NR,$0}' employee.txt> Produktion:
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 ovenstående eksempel udskriver awk-kommandoen med NR alle linjerne sammen med linjenummeret.
Brug af NF indbyggede variabler (Vis sidste felt)
$ awk '{print $1,$NF}' employee.txt> Produktion:
ajay 45000 sunil 25000 varun 50000 amit 47000 tarun 15000 deepak 23000 sunil 13000 satvik 80000>
I ovenstående eksempel repræsenterer $1 Navn og $NF repræsenterer Løn. Vi kan få løn ved at bruge $NF , hvor $NF repræsenterer sidste felt.
En anden brug af NR indbyggede variabler (displaylinje fra 3 til 6)
$ awk 'NR==3, NR==6 {print NR,$0}' employee.txt> Produktion:
3 varun manager sales 50000 4 amit manager account 47000 5 tarun peon sales 15000 6 deepak clerk sales 23000>
Flere eksempler
For den givne tekstfil:
$cat>geeksforgeeks.txt A B C Tarun A12 1 Man B6 2 Praveen M42 3>
1) For at udskrive det første element sammen med rækkenummeret (NR) adskilt med – fra hver linje i geeksforgeeks.txt:
$ awk '{print NR '- ' $1 }' geeksforgeeks.txt> 1 - A 2 - Tarun 3 – Manav 4 - Praveen>
2) Sådan returneres den anden kolonne/vare fra geeksforgeeks.txt:
Spørgsmålet skulle være:- For at returnere den anden kolonne/genstand fra geeksforgeeks.txt:
$ awk '{print $2}' geeksforgeeks.txt> B A12 B6 M42>
3) At udskrive en ikke-tom linje, hvis den findes
$ awk 'NF <0' geeksforgeeks.txt>
her skal NF være 0 ikke mindre end, og brugeren skal også udskrive linjenummeret:
korrekt svar : awk ‘NF == 0 {print NR}’ geeksforgeeks.txt
ELLER
awk ‘NF <= 0 {print NR}’ geeksforgeeks.txt
0>
4) For at finde længden af den længste linje i filen:
$ awk '{ if (length($0)>max) max = length($0) } END { print max }' geeksforgeeks.txt> 13>
5) For at tælle linjerne i en fil:
$ awk 'END { print NR }' geeksforgeeks.txt> 3>
6) Udskrivning af linjer med mere end 10 tegn:
$ awk 'length($0)>10' geeksforgeeks.txt>
Tarun A12 1 Praveen M42 3>
7) For at finde/kontrollere for en streng i en specifik kolonne:
$ awk '{ if($3 == 'B6') print $0;}' geeksforgeeks.txt> 8) For at udskrive kvadraterne af de første tal fra 1 til n skal du sige 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> Produktion:
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 ovenstående eksempel udskriver awk-kommandoen med NR alle linjerne sammen med linjenummeret.
Brug af NF indbyggede variabler (Vis sidste felt)
$ awk '{print ,$NF}' employee.txt> Produktion:
ajay 45000 sunil 25000 varun 50000 amit 47000 tarun 15000 deepak 23000 sunil 13000 satvik 80000>
I ovenstående eksempel repræsenterer Navn og $NF repræsenterer Løn. Vi kan få løn ved at bruge $NF , hvor $NF repræsenterer sidste felt.
En anden brug af NR indbyggede variabler (displaylinje fra 3 til 6)
$ awk 'NR==3, NR==6 {print NR,Awk er et scriptsprog, der bruges til at manipulere data og generere rapporter. Programmeringssproget awk kommando kræver ingen kompilering og giver brugeren mulighed for at bruge variabler, numeriske funktioner, strengfunktioner og logiske operatorer.
Awk er et værktøj, der gør det muligt for en programmør at skrive bittesmå, men effektive programmer i form af udsagn, der definerer tekstmønstre, der skal søges efter i hver linje i et dokument, og den handling, der skal udføres, når der findes et match i et dokument. linje. Awk bruges mest til mønsterscanning og -behandling. Den søger i en eller flere filer for at se, om de indeholder linjer, der matcher de angivne mønstre, og udfører derefter de tilknyttede handlinger.
Awk er forkortet fra navnene på udviklerne - Aho, Weinberger og Kernighan.
HVAD KAN VI GØRE MED AWK?
1. AWK-operationer:
(a) Scanner en fil linje for linje
(b) Opdeler hver inputlinje i felter
(c) Sammenligner inputlinje/felter med mønster
(d) Udfører handling(er) på matchede linjer
2. Nyttigt til:
(a) Transform datafiler
(b) Fremstil formaterede rapporter
3. Programmeringskonstruktioner:
(a) Formater outputlinjer
(b) Aritmetiske og strengoperationer
(c) Betingelser og sløjfer
Syntaks:
awk options 'selection _criteria {action }' input-file>output-fil> Muligheder:
-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:
Overvej følgende tekstfil som inputfil for alle tilfælde nedenfor:
$cat>medarbejder.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. Standardadfærd for Awk: Som standard udskriver Awk hver linje med data fra den angivne fil.
$ awk '{print}' employee.txt> Produktion:
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 ovenstående eksempel er der ikke angivet noget mønster. Så handlingerne er gældende for alle linjer. Action print uden argument udskriver hele linjen som standard, så det udskriver alle linjerne i filen uden fejl.
2. Udskriv de linjer, der matcher det givne mønster.
$ awk '/manager/ {print}' employee.txt> Produktion:
ajay manager account 45000 varun manager sales 50000 amit manager account 47000>
I ovenstående eksempel udskriver awk-kommandoen hele den linje, der matcher 'manageren'.
3. Opdeling af en linje i felter: For hver post, dvs. linje, opdeler awk-kommandoen posten afgrænset af blanktegn som standard og gemmer den i $n-variablerne. Hvis linjen har 4 ord, vil den blive gemt i henholdsvis $1, $2, $3 og $4. Også $0 repræsenterer hele linjen.
$ awk '{print $1,$4}' employee.txt> Produktion:
ajay 45000 sunil 25000 varun 50000 amit 47000 tarun 15000 deepak 23000 sunil 13000 satvik 80000>
I ovenstående eksempel repræsenterer $1 og $4 henholdsvis navn og løn.
Indbyggede variabler i Awk
Awks indbyggede variable inkluderer feltvariablerne - $1, $2, $3 og så videre ($0 er hele linjen) - der deler en tekstlinje i individuelle ord eller stykker kaldet felter.
NR: NR-kommandoen holder en aktuel optælling af antallet af inputposter. Husk, at poster normalt er linjer. Awk-kommandoen udfører mønster-/handlingssætningerne én gang for hver post i en fil. NF: NF-kommandoen holder en optælling af antallet af felter inden for den aktuelle inputpost. FS: FS-kommandoen indeholder feltseparatortegnet, som bruges til at opdele felter på inputlinjen. Standarden er hvidt mellemrum, hvilket betyder mellemrum og tabulatortegn. FS kan omtildeles til et andet tegn (typisk i BEGIN) for at ændre feltseparatoren. RS: RS-kommandoen gemmer det aktuelle postseparatortegn. Da en inputlinje som standard er inputposten, er standardpostseparatortegnet en ny linje. OFS: OFS-kommandoen gemmer outputfeltseparatoren, som adskiller felterne, når Awk udskriver dem. Standard er et tomt mellemrum. Når print har flere parametre adskilt med kommaer, vil det udskrive værdien af OFS mellem hver parameter. ORS: ORS-kommandoen gemmer outputpostseparatoren, som adskiller outputlinjerne, når Awk udskriver dem. Standard er et linjeskifttegn. print udsender automatisk indholdet af ORS i slutningen af det, det er givet til udskrivning.
Eksempler:
Brug af NR indbyggede variabler (displaylinjenummer)
$ awk '{print NR,$0}' employee.txt> Produktion:
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 ovenstående eksempel udskriver awk-kommandoen med NR alle linjerne sammen med linjenummeret.
Brug af NF indbyggede variabler (Vis sidste felt)
$ awk '{print $1,$NF}' employee.txt> Produktion:
ajay 45000 sunil 25000 varun 50000 amit 47000 tarun 15000 deepak 23000 sunil 13000 satvik 80000>
I ovenstående eksempel repræsenterer $1 Navn og $NF repræsenterer Løn. Vi kan få løn ved at bruge $NF , hvor $NF repræsenterer sidste felt.
En anden brug af NR indbyggede variabler (displaylinje fra 3 til 6)
$ awk 'NR==3, NR==6 {print NR,$0}' employee.txt> Produktion:
3 varun manager sales 50000 4 amit manager account 47000 5 tarun peon sales 15000 6 deepak clerk sales 23000>
Flere eksempler
For den givne tekstfil:
$cat>geeksforgeeks.txt A B C Tarun A12 1 Man B6 2 Praveen M42 3>
1) For at udskrive det første element sammen med rækkenummeret (NR) adskilt med – fra hver linje i geeksforgeeks.txt:
$ awk '{print NR '- ' $1 }' geeksforgeeks.txt> 1 - A 2 - Tarun 3 – Manav 4 - Praveen>
2) Sådan returneres den anden kolonne/vare fra geeksforgeeks.txt:
Spørgsmålet skulle være:- For at returnere den anden kolonne/genstand fra geeksforgeeks.txt:
$ awk '{print $2}' geeksforgeeks.txt> B A12 B6 M42>
3) At udskrive en ikke-tom linje, hvis den findes
$ awk 'NF <0' geeksforgeeks.txt>
her skal NF være 0 ikke mindre end, og brugeren skal også udskrive linjenummeret:
korrekt svar : awk ‘NF == 0 {print NR}’ geeksforgeeks.txt
ELLER
awk ‘NF <= 0 {print NR}’ geeksforgeeks.txt
0>
4) For at finde længden af den længste linje i filen:
$ awk '{ if (length($0)>max) max = length($0) } END { print max }' geeksforgeeks.txt> 13>
5) For at tælle linjerne i en fil:
$ awk 'END { print NR }' geeksforgeeks.txt> 3>
6) Udskrivning af linjer med mere end 10 tegn:
$ awk 'length($0)>10' geeksforgeeks.txt>
Tarun A12 1 Praveen M42 3>
7) For at finde/kontrollere for en streng i en specifik kolonne:
$ awk '{ if($3 == 'B6') print $0;}' geeksforgeeks.txt> 8) For at udskrive kvadraterne af de første tal fra 1 til n skal du sige 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> Produktion:
3 varun manager sales 50000 4 amit manager account 47000 5 tarun peon sales 15000 6 deepak clerk sales 23000>
Flere eksempler
For den givne tekstfil:
$cat>geeksforgeeks.txt A B C Tarun A12 1 Man B6 2 Praveen M42 3>
1) For at udskrive det første element sammen med rækkenummeret (NR) adskilt med – fra hver linje i geeksforgeeks.txt:
$ awk '{print NR '- ' }' geeksforgeeks.txt> 1 - A 2 - Tarun 3 – Manav 4 - Praveen>
2) Sådan returneres den anden kolonne/vare fra geeksforgeeks.txt:
Spørgsmålet skulle være:- For at returnere den anden kolonne/genstand fra geeksforgeeks.txt:
$ awk '{print }' geeksforgeeks.txt> B A12 B6 M42>
3) At udskrive en ikke-tom linje, hvis den findes
$ awk 'NF <0' geeksforgeeks.txt>
her skal NF være 0 ikke mindre end, og brugeren skal også udskrive linjenummeret:
korrekt svar : awk ‘NF == 0 {print NR}’ geeksforgeeks.txt
ELLER
awk ‘NF <= 0 {print NR}’ geeksforgeeks.txt
0>
4) For at finde længden af den længste linje i filen:
$ awk '{ if (length(Awk er et scriptsprog, der bruges til at manipulere data og generere rapporter. Programmeringssproget awk kommando kræver ingen kompilering og giver brugeren mulighed for at bruge variabler, numeriske funktioner, strengfunktioner og logiske operatorer.
Awk er et værktøj, der gør det muligt for en programmør at skrive bittesmå, men effektive programmer i form af udsagn, der definerer tekstmønstre, der skal søges efter i hver linje i et dokument, og den handling, der skal udføres, når der findes et match i et dokument. linje. Awk bruges mest til mønsterscanning og -behandling. Den søger i en eller flere filer for at se, om de indeholder linjer, der matcher de angivne mønstre, og udfører derefter de tilknyttede handlinger.
Awk er forkortet fra navnene på udviklerne - Aho, Weinberger og Kernighan.
HVAD KAN VI GØRE MED AWK?
1. AWK-operationer:
(a) Scanner en fil linje for linje
(b) Opdeler hver inputlinje i felter
(c) Sammenligner inputlinje/felter med mønster
(d) Udfører handling(er) på matchede linjer
2. Nyttigt til:
(a) Transform datafiler
(b) Fremstil formaterede rapporter
3. Programmeringskonstruktioner:
(a) Formater outputlinjer
(b) Aritmetiske og strengoperationer
(c) Betingelser og sløjfer
Syntaks:
awk options 'selection _criteria {action }' input-file>output-fil> Muligheder:
-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:
Overvej følgende tekstfil som inputfil for alle tilfælde nedenfor:
$cat>medarbejder.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. Standardadfærd for Awk: Som standard udskriver Awk hver linje med data fra den angivne fil.
$ awk '{print}' employee.txt> Produktion:
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 ovenstående eksempel er der ikke angivet noget mønster. Så handlingerne er gældende for alle linjer. Action print uden argument udskriver hele linjen som standard, så det udskriver alle linjerne i filen uden fejl.
2. Udskriv de linjer, der matcher det givne mønster.
$ awk '/manager/ {print}' employee.txt> Produktion:
ajay manager account 45000 varun manager sales 50000 amit manager account 47000>
I ovenstående eksempel udskriver awk-kommandoen hele den linje, der matcher 'manageren'.
3. Opdeling af en linje i felter: For hver post, dvs. linje, opdeler awk-kommandoen posten afgrænset af blanktegn som standard og gemmer den i $n-variablerne. Hvis linjen har 4 ord, vil den blive gemt i henholdsvis $1, $2, $3 og $4. Også $0 repræsenterer hele linjen.
$ awk '{print $1,$4}' employee.txt> Produktion:
ajay 45000 sunil 25000 varun 50000 amit 47000 tarun 15000 deepak 23000 sunil 13000 satvik 80000>
I ovenstående eksempel repræsenterer $1 og $4 henholdsvis navn og løn.
Indbyggede variabler i Awk
Awks indbyggede variable inkluderer feltvariablerne - $1, $2, $3 og så videre ($0 er hele linjen) - der deler en tekstlinje i individuelle ord eller stykker kaldet felter.
NR: NR-kommandoen holder en aktuel optælling af antallet af inputposter. Husk, at poster normalt er linjer. Awk-kommandoen udfører mønster-/handlingssætningerne én gang for hver post i en fil. NF: NF-kommandoen holder en optælling af antallet af felter inden for den aktuelle inputpost. FS: FS-kommandoen indeholder feltseparatortegnet, som bruges til at opdele felter på inputlinjen. Standarden er hvidt mellemrum, hvilket betyder mellemrum og tabulatortegn. FS kan omtildeles til et andet tegn (typisk i BEGIN) for at ændre feltseparatoren. RS: RS-kommandoen gemmer det aktuelle postseparatortegn. Da en inputlinje som standard er inputposten, er standardpostseparatortegnet en ny linje. OFS: OFS-kommandoen gemmer outputfeltseparatoren, som adskiller felterne, når Awk udskriver dem. Standard er et tomt mellemrum. Når print har flere parametre adskilt med kommaer, vil det udskrive værdien af OFS mellem hver parameter. ORS: ORS-kommandoen gemmer outputpostseparatoren, som adskiller outputlinjerne, når Awk udskriver dem. Standard er et linjeskifttegn. print udsender automatisk indholdet af ORS i slutningen af det, det er givet til udskrivning.
Eksempler:
Brug af NR indbyggede variabler (displaylinjenummer)
$ awk '{print NR,$0}' employee.txt> Produktion:
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 ovenstående eksempel udskriver awk-kommandoen med NR alle linjerne sammen med linjenummeret.
Brug af NF indbyggede variabler (Vis sidste felt)
$ awk '{print $1,$NF}' employee.txt> Produktion:
ajay 45000 sunil 25000 varun 50000 amit 47000 tarun 15000 deepak 23000 sunil 13000 satvik 80000>
I ovenstående eksempel repræsenterer $1 Navn og $NF repræsenterer Løn. Vi kan få løn ved at bruge $NF , hvor $NF repræsenterer sidste felt.
En anden brug af NR indbyggede variabler (displaylinje fra 3 til 6)
$ awk 'NR==3, NR==6 {print NR,$0}' employee.txt> Produktion:
3 varun manager sales 50000 4 amit manager account 47000 5 tarun peon sales 15000 6 deepak clerk sales 23000>
Flere eksempler
For den givne tekstfil:
$cat>geeksforgeeks.txt A B C Tarun A12 1 Man B6 2 Praveen M42 3>
1) For at udskrive det første element sammen med rækkenummeret (NR) adskilt med – fra hver linje i geeksforgeeks.txt:
$ awk '{print NR '- ' $1 }' geeksforgeeks.txt> 1 - A 2 - Tarun 3 – Manav 4 - Praveen>
2) Sådan returneres den anden kolonne/vare fra geeksforgeeks.txt:
Spørgsmålet skulle være:- For at returnere den anden kolonne/genstand fra geeksforgeeks.txt:
$ awk '{print $2}' geeksforgeeks.txt> B A12 B6 M42>
3) At udskrive en ikke-tom linje, hvis den findes
$ awk 'NF <0' geeksforgeeks.txt>
her skal NF være 0 ikke mindre end, og brugeren skal også udskrive linjenummeret:
korrekt svar : awk ‘NF == 0 {print NR}’ geeksforgeeks.txt
ELLER
awk ‘NF <= 0 {print NR}’ geeksforgeeks.txt
0>
4) For at finde længden af den længste linje i filen:
$ awk '{ if (length($0)>max) max = length($0) } END { print max }' geeksforgeeks.txt> 13>
5) For at tælle linjerne i en fil:
$ awk 'END { print NR }' geeksforgeeks.txt> 3>
6) Udskrivning af linjer med mere end 10 tegn:
$ awk 'length($0)>10' geeksforgeeks.txt>
Tarun A12 1 Praveen M42 3>
7) For at finde/kontrollere for en streng i en specifik kolonne:
$ awk '{ if($3 == 'B6') print $0;}' geeksforgeeks.txt> 8) For at udskrive kvadraterne af de første tal fra 1 til n skal du sige 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 scriptsprog, der bruges til at manipulere data og generere rapporter. Programmeringssproget awk kommando kræver ingen kompilering og giver brugeren mulighed for at bruge variabler, numeriske funktioner, strengfunktioner og logiske operatorer.
Awk er et værktøj, der gør det muligt for en programmør at skrive bittesmå, men effektive programmer i form af udsagn, der definerer tekstmønstre, der skal søges efter i hver linje i et dokument, og den handling, der skal udføres, når der findes et match i et dokument. linje. Awk bruges mest til mønsterscanning og -behandling. Den søger i en eller flere filer for at se, om de indeholder linjer, der matcher de angivne mønstre, og udfører derefter de tilknyttede handlinger.
Awk er forkortet fra navnene på udviklerne - Aho, Weinberger og Kernighan.
HVAD KAN VI GØRE MED AWK?
1. AWK-operationer:
(a) Scanner en fil linje for linje
(b) Opdeler hver inputlinje i felter
(c) Sammenligner inputlinje/felter med mønster
(d) Udfører handling(er) på matchede linjer
2. Nyttigt til:
(a) Transform datafiler
(b) Fremstil formaterede rapporter
3. Programmeringskonstruktioner:
(a) Formater outputlinjer
(b) Aritmetiske og strengoperationer
(c) Betingelser og sløjfer
Syntaks:
awk options 'selection _criteria {action }' input-file>output-fil> Muligheder:
-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:
Overvej følgende tekstfil som inputfil for alle tilfælde nedenfor:
$cat>medarbejder.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. Standardadfærd for Awk: Som standard udskriver Awk hver linje med data fra den angivne fil.
$ awk '{print}' employee.txt> Produktion:
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 ovenstående eksempel er der ikke angivet noget mønster. Så handlingerne er gældende for alle linjer. Action print uden argument udskriver hele linjen som standard, så det udskriver alle linjerne i filen uden fejl.
2. Udskriv de linjer, der matcher det givne mønster.
$ awk '/manager/ {print}' employee.txt> Produktion:
ajay manager account 45000 varun manager sales 50000 amit manager account 47000>
I ovenstående eksempel udskriver awk-kommandoen hele den linje, der matcher 'manageren'.
3. Opdeling af en linje i felter: For hver post, dvs. linje, opdeler awk-kommandoen posten afgrænset af blanktegn som standard og gemmer den i $n-variablerne. Hvis linjen har 4 ord, vil den blive gemt i henholdsvis $1, $2, $3 og $4. Også $0 repræsenterer hele linjen.
$ awk '{print $1,$4}' employee.txt> Produktion:
ajay 45000 sunil 25000 varun 50000 amit 47000 tarun 15000 deepak 23000 sunil 13000 satvik 80000>
I ovenstående eksempel repræsenterer $1 og $4 henholdsvis navn og løn.
Indbyggede variabler i Awk
Awks indbyggede variable inkluderer feltvariablerne - $1, $2, $3 og så videre ($0 er hele linjen) - der deler en tekstlinje i individuelle ord eller stykker kaldet felter.
NR: NR-kommandoen holder en aktuel optælling af antallet af inputposter. Husk, at poster normalt er linjer. Awk-kommandoen udfører mønster-/handlingssætningerne én gang for hver post i en fil. NF: NF-kommandoen holder en optælling af antallet af felter inden for den aktuelle inputpost. FS: FS-kommandoen indeholder feltseparatortegnet, som bruges til at opdele felter på inputlinjen. Standarden er hvidt mellemrum, hvilket betyder mellemrum og tabulatortegn. FS kan omtildeles til et andet tegn (typisk i BEGIN) for at ændre feltseparatoren. RS: RS-kommandoen gemmer det aktuelle postseparatortegn. Da en inputlinje som standard er inputposten, er standardpostseparatortegnet en ny linje. OFS: OFS-kommandoen gemmer outputfeltseparatoren, som adskiller felterne, når Awk udskriver dem. Standard er et tomt mellemrum. Når print har flere parametre adskilt med kommaer, vil det udskrive værdien af OFS mellem hver parameter. ORS: ORS-kommandoen gemmer outputpostseparatoren, som adskiller outputlinjerne, når Awk udskriver dem. Standard er et linjeskifttegn. print udsender automatisk indholdet af ORS i slutningen af det, det er givet til udskrivning.
Eksempler:
Brug af NR indbyggede variabler (displaylinjenummer)
$ awk '{print NR,$0}' employee.txt> Produktion:
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 ovenstående eksempel udskriver awk-kommandoen med NR alle linjerne sammen med linjenummeret.
Brug af NF indbyggede variabler (Vis sidste felt)
$ awk '{print $1,$NF}' employee.txt> Produktion:
ajay 45000 sunil 25000 varun 50000 amit 47000 tarun 15000 deepak 23000 sunil 13000 satvik 80000>
I ovenstående eksempel repræsenterer $1 Navn og $NF repræsenterer Løn. Vi kan få løn ved at bruge $NF , hvor $NF repræsenterer sidste felt.
En anden brug af NR indbyggede variabler (displaylinje fra 3 til 6)
$ awk 'NR==3, NR==6 {print NR,$0}' employee.txt> Produktion:
3 varun manager sales 50000 4 amit manager account 47000 5 tarun peon sales 15000 6 deepak clerk sales 23000>
Flere eksempler
For den givne tekstfil:
$cat>geeksforgeeks.txt A B C Tarun A12 1 Man B6 2 Praveen M42 3>
1) For at udskrive det første element sammen med rækkenummeret (NR) adskilt med – fra hver linje i geeksforgeeks.txt:
$ awk '{print NR '- ' $1 }' geeksforgeeks.txt> 1 - A 2 - Tarun 3 – Manav 4 - Praveen>
2) Sådan returneres den anden kolonne/vare fra geeksforgeeks.txt:
Spørgsmålet skulle være:- For at returnere den anden kolonne/genstand fra geeksforgeeks.txt:
$ awk '{print $2}' geeksforgeeks.txt> B A12 B6 M42>
3) At udskrive en ikke-tom linje, hvis den findes
$ awk 'NF <0' geeksforgeeks.txt>
her skal NF være 0 ikke mindre end, og brugeren skal også udskrive linjenummeret:
korrekt svar : awk ‘NF == 0 {print NR}’ geeksforgeeks.txt
ELLER
awk ‘NF <= 0 {print NR}’ geeksforgeeks.txt
0>
4) For at finde længden af den længste linje i filen:
$ awk '{ if (length($0)>max) max = length($0) } END { print max }' geeksforgeeks.txt> 13>
5) For at tælle linjerne i en fil:
$ awk 'END { print NR }' geeksforgeeks.txt> 3>
6) Udskrivning af linjer med mere end 10 tegn:
$ awk 'length($0)>10' geeksforgeeks.txt>
Tarun A12 1 Praveen M42 3>
7) For at finde/kontrollere for en streng i en specifik kolonne:
$ awk '{ if($3 == 'B6') print $0;}' geeksforgeeks.txt> 8) For at udskrive kvadraterne af de første tal fra 1 til n skal du sige 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 at tælle linjerne i en fil:
$ awk 'END { print NR }' geeksforgeeks.txt> 3>
6) Udskrivning af linjer med mere end 10 tegn:
$ awk 'length()>10' geeksforgeeks.txt> Awk er et scriptsprog, der bruges til at manipulere data og generere rapporter. Programmeringssproget awk kommando kræver ingen kompilering og giver brugeren mulighed for at bruge variabler, numeriske funktioner, strengfunktioner og logiske operatorer.
Awk er et værktøj, der gør det muligt for en programmør at skrive bittesmå, men effektive programmer i form af udsagn, der definerer tekstmønstre, der skal søges efter i hver linje i et dokument, og den handling, der skal udføres, når der findes et match i et dokument. linje. Awk bruges mest til mønsterscanning og -behandling. Den søger i en eller flere filer for at se, om de indeholder linjer, der matcher de angivne mønstre, og udfører derefter de tilknyttede handlinger.
Awk er forkortet fra navnene på udviklerne - Aho, Weinberger og Kernighan.
HVAD KAN VI GØRE MED AWK?
1. AWK-operationer:
(a) Scanner en fil linje for linje
(b) Opdeler hver inputlinje i felter
(c) Sammenligner inputlinje/felter med mønster
(d) Udfører handling(er) på matchede linjer2. Nyttigt til:
(a) Transform datafiler
(b) Fremstil formaterede rapporter3. Programmeringskonstruktioner:
(a) Formater outputlinjer
(b) Aritmetiske og strengoperationer
(c) Betingelser og sløjferSyntaks:
awk options 'selection _criteria {action }' input-file>output-fil>Muligheder:
-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:
Overvej følgende tekstfil som inputfil for alle tilfælde nedenfor:
$cat>medarbejder.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. Standardadfærd for Awk: Som standard udskriver Awk hver linje med data fra den angivne fil.
$ awk '{print}' employee.txt>Produktion:
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 ovenstående eksempel er der ikke angivet noget mønster. Så handlingerne er gældende for alle linjer. Action print uden argument udskriver hele linjen som standard, så det udskriver alle linjerne i filen uden fejl.
2. Udskriv de linjer, der matcher det givne mønster.
$ awk '/manager/ {print}' employee.txt>Produktion:
ajay manager account 45000 varun manager sales 50000 amit manager account 47000>I ovenstående eksempel udskriver awk-kommandoen hele den linje, der matcher 'manageren'.
3. Opdeling af en linje i felter: For hver post, dvs. linje, opdeler awk-kommandoen posten afgrænset af blanktegn som standard og gemmer den i $n-variablerne. Hvis linjen har 4 ord, vil den blive gemt i henholdsvis $1, $2, $3 og $4. Også $0 repræsenterer hele linjen.
$ awk '{print $1,$4}' employee.txt>Produktion:
ajay 45000 sunil 25000 varun 50000 amit 47000 tarun 15000 deepak 23000 sunil 13000 satvik 80000>I ovenstående eksempel repræsenterer $1 og $4 henholdsvis navn og løn.
Indbyggede variabler i Awk
Awks indbyggede variable inkluderer feltvariablerne - $1, $2, $3 og så videre ($0 er hele linjen) - der deler en tekstlinje i individuelle ord eller stykker kaldet felter.
NR: NR-kommandoen holder en aktuel optælling af antallet af inputposter. Husk, at poster normalt er linjer. Awk-kommandoen udfører mønster-/handlingssætningerne én gang for hver post i en fil. NF: NF-kommandoen holder en optælling af antallet af felter inden for den aktuelle inputpost. FS: FS-kommandoen indeholder feltseparatortegnet, som bruges til at opdele felter på inputlinjen. Standarden er hvidt mellemrum, hvilket betyder mellemrum og tabulatortegn. FS kan omtildeles til et andet tegn (typisk i BEGIN) for at ændre feltseparatoren. RS: RS-kommandoen gemmer det aktuelle postseparatortegn. Da en inputlinje som standard er inputposten, er standardpostseparatortegnet en ny linje. OFS: OFS-kommandoen gemmer outputfeltseparatoren, som adskiller felterne, når Awk udskriver dem. Standard er et tomt mellemrum. Når print har flere parametre adskilt med kommaer, vil det udskrive værdien af OFS mellem hver parameter. ORS: ORS-kommandoen gemmer outputpostseparatoren, som adskiller outputlinjerne, når Awk udskriver dem. Standard er et linjeskifttegn. print udsender automatisk indholdet af ORS i slutningen af det, det er givet til udskrivning.
Eksempler:
Brug af NR indbyggede variabler (displaylinjenummer)
$ awk '{print NR,$0}' employee.txt>Produktion:
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 ovenstående eksempel udskriver awk-kommandoen med NR alle linjerne sammen med linjenummeret.
Brug af NF indbyggede variabler (Vis sidste felt)
$ awk '{print $1,$NF}' employee.txt>Produktion:
ajay 45000 sunil 25000 varun 50000 amit 47000 tarun 15000 deepak 23000 sunil 13000 satvik 80000>I ovenstående eksempel repræsenterer $1 Navn og $NF repræsenterer Løn. Vi kan få løn ved at bruge $NF , hvor $NF repræsenterer sidste felt.
En anden brug af NR indbyggede variabler (displaylinje fra 3 til 6)
$ awk 'NR==3, NR==6 {print NR,$0}' employee.txt>Produktion:
3 varun manager sales 50000 4 amit manager account 47000 5 tarun peon sales 15000 6 deepak clerk sales 23000>Flere eksempler
For den givne tekstfil:
$cat>geeksforgeeks.txt A B C Tarun A12 1 Man B6 2 Praveen M42 3>1) For at udskrive det første element sammen med rækkenummeret (NR) adskilt med – fra hver linje i geeksforgeeks.txt:
$ awk '{print NR '- ' $1 }' geeksforgeeks.txt>1 - A 2 - Tarun 3 – Manav 4 - Praveen>2) Sådan returneres den anden kolonne/vare fra geeksforgeeks.txt:
Spørgsmålet skulle være:- For at returnere den anden kolonne/genstand fra geeksforgeeks.txt:
$ awk '{print $2}' geeksforgeeks.txt>B A12 B6 M42>3) At udskrive en ikke-tom linje, hvis den findes
$ awk 'NF <0' geeksforgeeks.txt>her skal NF være 0 ikke mindre end, og brugeren skal også udskrive linjenummeret:
korrekt svar : awk ‘NF == 0 {print NR}’ geeksforgeeks.txt
ELLER
awk ‘NF <= 0 {print NR}’ geeksforgeeks.txt
0>4) For at finde længden af den længste linje i filen:
$ awk '{ if (length($0)>max) max = length($0) } END { print max }' geeksforgeeks.txt>13>5) For at tælle linjerne i en fil:
$ awk 'END { print NR }' geeksforgeeks.txt>3>6) Udskrivning af linjer med mere end 10 tegn:
$ awk 'length($0)>10' geeksforgeeks.txt>Tarun A12 1 Praveen M42 3>7) For at finde/kontrollere for en streng i en specifik kolonne:
$ awk '{ if($3 == 'B6') print $0;}' geeksforgeeks.txt>8) For at udskrive kvadraterne af de første tal fra 1 til n skal du sige 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 at finde/kontrollere for en streng i en specifik kolonne:
$ awk '{ if( == 'B6') print Awk er et scriptsprog, der bruges til at manipulere data og generere rapporter. Programmeringssproget awk kommando kræver ingen kompilering og giver brugeren mulighed for at bruge variabler, numeriske funktioner, strengfunktioner og logiske operatorer.
Awk er et værktøj, der gør det muligt for en programmør at skrive bittesmå, men effektive programmer i form af udsagn, der definerer tekstmønstre, der skal søges efter i hver linje i et dokument, og den handling, der skal udføres, når der findes et match i et dokument. linje. Awk bruges mest til mønsterscanning og -behandling. Den søger i en eller flere filer for at se, om de indeholder linjer, der matcher de angivne mønstre, og udfører derefter de tilknyttede handlinger.
Awk er forkortet fra navnene på udviklerne - Aho, Weinberger og Kernighan.
HVAD KAN VI GØRE MED AWK?
1. AWK-operationer:
(a) Scanner en fil linje for linje
(b) Opdeler hver inputlinje i felter
(c) Sammenligner inputlinje/felter med mønster
(d) Udfører handling(er) på matchede linjer
2. Nyttigt til:
(a) Transform datafiler
(b) Fremstil formaterede rapporter
3. Programmeringskonstruktioner:
(a) Formater outputlinjer
(b) Aritmetiske og strengoperationer
(c) Betingelser og sløjfer
Syntaks:
awk options 'selection _criteria {action }' input-file>output-fil> Muligheder:
-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:
Overvej følgende tekstfil som inputfil for alle tilfælde nedenfor:
$cat>medarbejder.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. Standardadfærd for Awk: Som standard udskriver Awk hver linje med data fra den angivne fil.
$ awk '{print}' employee.txt> Produktion:
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 ovenstående eksempel er der ikke angivet noget mønster. Så handlingerne er gældende for alle linjer. Action print uden argument udskriver hele linjen som standard, så det udskriver alle linjerne i filen uden fejl.
2. Udskriv de linjer, der matcher det givne mønster.
$ awk '/manager/ {print}' employee.txt> Produktion:
ajay manager account 45000 varun manager sales 50000 amit manager account 47000>
I ovenstående eksempel udskriver awk-kommandoen hele den linje, der matcher 'manageren'.
3. Opdeling af en linje i felter: For hver post, dvs. linje, opdeler awk-kommandoen posten afgrænset af blanktegn som standard og gemmer den i $n-variablerne. Hvis linjen har 4 ord, vil den blive gemt i henholdsvis $1, $2, $3 og $4. Også $0 repræsenterer hele linjen.
$ awk '{print $1,$4}' employee.txt> Produktion:
ajay 45000 sunil 25000 varun 50000 amit 47000 tarun 15000 deepak 23000 sunil 13000 satvik 80000>
I ovenstående eksempel repræsenterer $1 og $4 henholdsvis navn og løn.
Indbyggede variabler i Awk
Awks indbyggede variable inkluderer feltvariablerne - $1, $2, $3 og så videre ($0 er hele linjen) - der deler en tekstlinje i individuelle ord eller stykker kaldet felter.
NR: NR-kommandoen holder en aktuel optælling af antallet af inputposter. Husk, at poster normalt er linjer. Awk-kommandoen udfører mønster-/handlingssætningerne én gang for hver post i en fil. NF: NF-kommandoen holder en optælling af antallet af felter inden for den aktuelle inputpost. FS: FS-kommandoen indeholder feltseparatortegnet, som bruges til at opdele felter på inputlinjen. Standarden er hvidt mellemrum, hvilket betyder mellemrum og tabulatortegn. FS kan omtildeles til et andet tegn (typisk i BEGIN) for at ændre feltseparatoren. RS: RS-kommandoen gemmer det aktuelle postseparatortegn. Da en inputlinje som standard er inputposten, er standardpostseparatortegnet en ny linje. OFS: OFS-kommandoen gemmer outputfeltseparatoren, som adskiller felterne, når Awk udskriver dem. Standard er et tomt mellemrum. Når print har flere parametre adskilt med kommaer, vil det udskrive værdien af OFS mellem hver parameter. ORS: ORS-kommandoen gemmer outputpostseparatoren, som adskiller outputlinjerne, når Awk udskriver dem. Standard er et linjeskifttegn. print udsender automatisk indholdet af ORS i slutningen af det, det er givet til udskrivning.
Eksempler:
Brug af NR indbyggede variabler (displaylinjenummer)
$ awk '{print NR,$0}' employee.txt> Produktion:
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 ovenstående eksempel udskriver awk-kommandoen med NR alle linjerne sammen med linjenummeret.
Brug af NF indbyggede variabler (Vis sidste felt)
$ awk '{print $1,$NF}' employee.txt> Produktion:
ajay 45000 sunil 25000 varun 50000 amit 47000 tarun 15000 deepak 23000 sunil 13000 satvik 80000>
I ovenstående eksempel repræsenterer $1 Navn og $NF repræsenterer Løn. Vi kan få løn ved at bruge $NF , hvor $NF repræsenterer sidste felt.
En anden brug af NR indbyggede variabler (displaylinje fra 3 til 6)
$ awk 'NR==3, NR==6 {print NR,$0}' employee.txt> Produktion:
3 varun manager sales 50000 4 amit manager account 47000 5 tarun peon sales 15000 6 deepak clerk sales 23000>
Flere eksempler
For den givne tekstfil:
$cat>geeksforgeeks.txt A B C Tarun A12 1 Man B6 2 Praveen M42 3>
1) For at udskrive det første element sammen med rækkenummeret (NR) adskilt med – fra hver linje i geeksforgeeks.txt:
$ awk '{print NR '- ' $1 }' geeksforgeeks.txt> 1 - A 2 - Tarun 3 – Manav 4 - Praveen>
2) Sådan returneres den anden kolonne/vare fra geeksforgeeks.txt:
Spørgsmålet skulle være:- For at returnere den anden kolonne/genstand fra geeksforgeeks.txt:
$ awk '{print $2}' geeksforgeeks.txt> B A12 B6 M42>
3) At udskrive en ikke-tom linje, hvis den findes
$ awk 'NF <0' geeksforgeeks.txt>
her skal NF være 0 ikke mindre end, og brugeren skal også udskrive linjenummeret:
korrekt svar : awk ‘NF == 0 {print NR}’ geeksforgeeks.txt
ELLER
awk ‘NF <= 0 {print NR}’ geeksforgeeks.txt
0>
4) For at finde længden af den længste linje i filen:
$ awk '{ if (length($0)>max) max = length($0) } END { print max }' geeksforgeeks.txt> 13>
5) For at tælle linjerne i en fil:
$ awk 'END { print NR }' geeksforgeeks.txt> 3>
6) Udskrivning af linjer med mere end 10 tegn:
$ awk 'length($0)>10' geeksforgeeks.txt>
Tarun A12 1 Praveen M42 3>
7) For at finde/kontrollere for en streng i en specifik kolonne:
$ awk '{ if($3 == 'B6') print $0;}' geeksforgeeks.txt> 8) For at udskrive kvadraterne af de første tal fra 1 til n skal du sige 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 at udskrive kvadraterne af de første tal fra 1 til n skal du sige 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>