logo

AWK kommando i Unix/Linux med eksempler

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:
(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>


repræsenterer hele linjen.

$ 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:
(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>


er hele linjen) - der deler en tekstlinje i individuelle ord eller stykker kaldet felter.

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(

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>


)>10' geeksforgeeks.txt>
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>