Awk is een scripttaal die wordt gebruikt voor het manipuleren van gegevens en het genereren van rapporten. De programmeertaal awk command vereist geen compilatie en stelt de gebruiker in staat variabelen, numerieke functies, stringfuncties en logische operatoren te gebruiken.
Awk is een hulpprogramma waarmee een programmeur kleine maar effectieve programma's kan schrijven in de vorm van instructies die tekstpatronen definiëren waarnaar in elke regel van een document moet worden gezocht en de actie die moet worden ondernomen wanneer er een overeenkomst wordt gevonden binnen een document. lijn. Awk wordt meestal gebruikt voor het scannen en verwerken van patronen. Het doorzoekt een of meer bestanden om te zien of deze regels bevatten die overeenkomen met de opgegeven patronen en voert vervolgens de bijbehorende acties uit.
Awk is een afkorting van de namen van de ontwikkelaars: Aho, Weinberger en Kernighan.
WAT KUNNEN WE DOEN MET AWK?
1. AWK-operaties:
(a) Scant een bestand regel voor regel
(b) Splitst elke invoerregel in velden
(c) Vergelijkt invoerregels/velden met patroon
(d) Voert actie(s) uit op overeenkomende lijnen
2. Handig voor:
(a) Gegevensbestanden transformeren
(b) Opgemaakte rapporten produceren
3. Programmeerconstructies:
(a) Formatteer uitvoerregels
(b) Rekenkundige en stringbewerkingen
(c) Voorwaardelijke waarden en lussen
Syntaxis:
awk options 'selection _criteria {action }' input-file>uitvoerbestand> Opties:
-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>
Voorbeeldopdrachten
Voorbeeld:
Beschouw het volgende tekstbestand als invoerbestand voor alle onderstaande gevallen:
$cat>medewerker.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. Standaardgedrag van Awk: Standaard drukt Awk elke regel met gegevens uit het opgegeven bestand af.
$ awk '{print}' employee.txt> Uitgang:
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>
In het bovenstaande voorbeeld wordt geen patroon gegeven. De acties zijn dus van toepassing op alle lijnen. Actie print zonder enig argument drukt standaard de hele regel af, zodat alle regels van het bestand zonder fouten worden afgedrukt.
2. Druk de lijnen af die overeenkomen met het opgegeven patroon.
$ awk '/manager/ {print}' employee.txt> Uitgang:
ajay manager account 45000 varun manager sales 50000 amit manager account 47000>
In het bovenstaande voorbeeld drukt de opdracht awk alle regels af die overeenkomen met de ‘manager’.
3. Een regel in velden splitsen: Voor elke record, d.w.z. regel, splitst de opdracht awk de record standaard gescheiden door witruimtetekens en slaat deze op in de $n variabelen. Als de regel 4 woorden bevat, wordt deze respectievelijk opgeslagen in , , en . Bovendien vertegenwoordigt Awk is een scripttaal die wordt gebruikt voor het manipuleren van gegevens en het genereren van rapporten. De programmeertaal awk command vereist geen compilatie en stelt de gebruiker in staat variabelen, numerieke functies, stringfuncties en logische operatoren te gebruiken. Awk is een hulpprogramma waarmee een programmeur kleine maar effectieve programma's kan schrijven in de vorm van instructies die tekstpatronen definiëren waarnaar in elke regel van een document moet worden gezocht en de actie die moet worden ondernomen wanneer er een overeenkomst wordt gevonden binnen een document. lijn. Awk wordt meestal gebruikt voor het scannen en verwerken van patronen. Het doorzoekt een of meer bestanden om te zien of deze regels bevatten die overeenkomen met de opgegeven patronen en voert vervolgens de bijbehorende acties uit. Awk is een afkorting van de namen van de ontwikkelaars: Aho, Weinberger en Kernighan. WAT KUNNEN WE DOEN MET AWK? 1. AWK-operaties: 2. Handig voor: 3. Programmeerconstructies: Syntaxis: Opties: Voorbeeldopdrachten Voorbeeld: Beschouw het volgende tekstbestand als invoerbestand voor alle onderstaande gevallen: 1. Standaardgedrag van Awk: Standaard drukt Awk elke regel met gegevens uit het opgegeven bestand af. Uitgang: In het bovenstaande voorbeeld wordt geen patroon gegeven. De acties zijn dus van toepassing op alle lijnen. Actie print zonder enig argument drukt standaard de hele regel af, zodat alle regels van het bestand zonder fouten worden afgedrukt. 2. Druk de lijnen af die overeenkomen met het opgegeven patroon. Uitgang: In het bovenstaande voorbeeld drukt de opdracht awk alle regels af die overeenkomen met de ‘manager’. 3. Een regel in velden splitsen: Voor elke record, d.w.z. regel, splitst de opdracht awk de record standaard gescheiden door witruimtetekens en slaat deze op in de $n variabelen. Als de regel 4 woorden bevat, wordt deze respectievelijk opgeslagen in $1, $2, $3 en $4. Bovendien vertegenwoordigt $0 de hele lijn. Uitgang: In het bovenstaande voorbeeld vertegenwoordigen $1 en $4 respectievelijk de velden Naam en Salaris. Ingebouwde variabelen in Awk De ingebouwde variabelen van Awk omvatten de veldvariabelen – $1, $2, $3, enzovoort ($0 is de hele regel) – die een regel tekst opsplitsen in afzonderlijke woorden of stukjes die velden worden genoemd. Voorbeelden: Gebruik van ingebouwde NR-variabelen (Display Line Number) Uitgang: In het bovenstaande voorbeeld drukt de opdracht awk met NR alle regels samen met het regelnummer af. Gebruik van ingebouwde NF-variabelen (Laatste veld weergeven) Uitgang: In het bovenstaande voorbeeld staat $1 voor Naam en $NF voor Salaris. We kunnen het salaris verkrijgen met $NF , waarbij $NF het laatste veld vertegenwoordigt. Een ander gebruik van ingebouwde NR-variabelen (Display Line From 3 tot 6) Uitgang: Meer voorbeelden Voor het opgegeven tekstbestand: 1) Om het eerste item af te drukken samen met het rijnummer (NR), gescheiden door – van elke regel in geeksforgeeks.txt: 2) Om de tweede kolom/item van geeksforgeeks.txt terug te geven: De vraag zou moeten zijn: - Om de tweede kolom/item van geeksforgeeks.txt terug te geven: 3) Om eventuele niet-lege regels af te drukken, indien aanwezig hier moet NF niet kleiner zijn dan 0 en de gebruiker moet ook het regelnummer afdrukken: juiste antwoord: awk ‘NF == 0 {print NR}’ geeksforgeeks.txt OF awk ‘NF <= 0 {print NR}’ geeksforgeeks.txt 4) Om de lengte van de langste regel in het bestand te vinden: 5) Om de regels in een bestand te tellen: 6) Afdrukregels met meer dan 10 tekens: 7) Om een tekenreeks in een specifieke kolom te zoeken/controleren: 8) Om de vierkanten van de eerste getallen van 1 tot n af te drukken, zeg je 6:
(a) Scant een bestand regel voor regel
(b) Splitst elke invoerregel in velden
(c) Vergelijkt invoerregels/velden met patroon
(d) Voert actie(s) uit op overeenkomende lijnen
(a) Gegevensbestanden transformeren
(b) Opgemaakte rapporten produceren
(a) Formatteer uitvoerregels
(b) Rekenkundige en stringbewerkingen
(c) Voorwaardelijke waarden en lussenawk options 'selection _criteria {action }' input-file>uitvoerbestand> -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>medewerker.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-opdracht houdt een huidige telling bij van het aantal invoerrecords. Houd er rekening mee dat records meestal lijnen zijn. De opdracht Awk voert de patroon-/actie-instructies één keer uit voor elke record in een bestand. NF: NF-opdracht houdt het aantal velden binnen het huidige invoerrecord bij. FS: FS-opdracht bevat het veldscheidingsteken dat wordt gebruikt om velden op de invoerregel te verdelen. De standaardwaarde is witruimte, dat wil zeggen spatie- en tabtekens. FS kan opnieuw worden toegewezen aan een ander teken (meestal in BEGIN) om het veldscheidingsteken te wijzigen. RS: RS-opdracht slaat het huidige recordscheidingsteken op. Omdat een invoerregel standaard het invoerrecord is, is het standaardscheidingsteken voor records een nieuwe regel. OFS: OFS-opdracht slaat het uitvoerveldscheidingsteken op, dat de velden scheidt wanneer Awk ze afdrukt. De standaardinstelling is een lege ruimte. Wanneer print meerdere parameters bevat, gescheiden door komma's, wordt de waarde van OFS tussen elke parameter afgedrukt. ORS: ORS-opdracht slaat het uitvoerrecordscheidingsteken op, dat de uitvoerregels scheidt wanneer Awk ze afdrukt. De standaardwaarde is een newline-teken. print voert automatisch de inhoud van ORS uit aan het einde van wat het ook mag afdrukken.
$ 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 = lengte($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> Uitgang:
ajay 45000 sunil 25000 varun 50000 amit 47000 tarun 15000 deepak 23000 sunil 13000 satvik 80000>
In het bovenstaande voorbeeld vertegenwoordigen en respectievelijk de velden Naam en Salaris.
Ingebouwde variabelen in Awk
De ingebouwde variabelen van Awk omvatten de veldvariabelen – , , , enzovoort ( Awk is een scripttaal die wordt gebruikt voor het manipuleren van gegevens en het genereren van rapporten. De programmeertaal awk command vereist geen compilatie en stelt de gebruiker in staat variabelen, numerieke functies, stringfuncties en logische operatoren te gebruiken. Awk is een hulpprogramma waarmee een programmeur kleine maar effectieve programma's kan schrijven in de vorm van instructies die tekstpatronen definiëren waarnaar in elke regel van een document moet worden gezocht en de actie die moet worden ondernomen wanneer er een overeenkomst wordt gevonden binnen een document. lijn. Awk wordt meestal gebruikt voor het scannen en verwerken van patronen. Het doorzoekt een of meer bestanden om te zien of deze regels bevatten die overeenkomen met de opgegeven patronen en voert vervolgens de bijbehorende acties uit. Awk is een afkorting van de namen van de ontwikkelaars: Aho, Weinberger en Kernighan. WAT KUNNEN WE DOEN MET AWK? 1. AWK-operaties: 2. Handig voor: 3. Programmeerconstructies: Syntaxis: Opties: Voorbeeldopdrachten Voorbeeld: Beschouw het volgende tekstbestand als invoerbestand voor alle onderstaande gevallen: 1. Standaardgedrag van Awk: Standaard drukt Awk elke regel met gegevens uit het opgegeven bestand af. Uitgang: In het bovenstaande voorbeeld wordt geen patroon gegeven. De acties zijn dus van toepassing op alle lijnen. Actie print zonder enig argument drukt standaard de hele regel af, zodat alle regels van het bestand zonder fouten worden afgedrukt. 2. Druk de lijnen af die overeenkomen met het opgegeven patroon. Uitgang: In het bovenstaande voorbeeld drukt de opdracht awk alle regels af die overeenkomen met de ‘manager’. 3. Een regel in velden splitsen: Voor elke record, d.w.z. regel, splitst de opdracht awk de record standaard gescheiden door witruimtetekens en slaat deze op in de $n variabelen. Als de regel 4 woorden bevat, wordt deze respectievelijk opgeslagen in $1, $2, $3 en $4. Bovendien vertegenwoordigt $0 de hele lijn. Uitgang: In het bovenstaande voorbeeld vertegenwoordigen $1 en $4 respectievelijk de velden Naam en Salaris. Ingebouwde variabelen in Awk De ingebouwde variabelen van Awk omvatten de veldvariabelen – $1, $2, $3, enzovoort ($0 is de hele regel) – die een regel tekst opsplitsen in afzonderlijke woorden of stukjes die velden worden genoemd. Voorbeelden: Gebruik van ingebouwde NR-variabelen (Display Line Number) Uitgang: In het bovenstaande voorbeeld drukt de opdracht awk met NR alle regels samen met het regelnummer af. Gebruik van ingebouwde NF-variabelen (Laatste veld weergeven) Uitgang: In het bovenstaande voorbeeld staat $1 voor Naam en $NF voor Salaris. We kunnen het salaris verkrijgen met $NF , waarbij $NF het laatste veld vertegenwoordigt. Een ander gebruik van ingebouwde NR-variabelen (Display Line From 3 tot 6) Uitgang: Meer voorbeelden Voor het opgegeven tekstbestand: 1) Om het eerste item af te drukken samen met het rijnummer (NR), gescheiden door – van elke regel in geeksforgeeks.txt: 2) Om de tweede kolom/item van geeksforgeeks.txt terug te geven: De vraag zou moeten zijn: - Om de tweede kolom/item van geeksforgeeks.txt terug te geven: 3) Om eventuele niet-lege regels af te drukken, indien aanwezig hier moet NF niet kleiner zijn dan 0 en de gebruiker moet ook het regelnummer afdrukken: juiste antwoord: awk ‘NF == 0 {print NR}’ geeksforgeeks.txt OF awk ‘NF <= 0 {print NR}’ geeksforgeeks.txt 4) Om de lengte van de langste regel in het bestand te vinden: 5) Om de regels in een bestand te tellen: 6) Afdrukregels met meer dan 10 tekens: 7) Om een tekenreeks in een specifieke kolom te zoeken/controleren: 8) Om de vierkanten van de eerste getallen van 1 tot n af te drukken, zeg je 6:
(a) Scant een bestand regel voor regel
(b) Splitst elke invoerregel in velden
(c) Vergelijkt invoerregels/velden met patroon
(d) Voert actie(s) uit op overeenkomende lijnen
(a) Gegevensbestanden transformeren
(b) Opgemaakte rapporten produceren
(a) Formatteer uitvoerregels
(b) Rekenkundige en stringbewerkingen
(c) Voorwaardelijke waarden en lussenawk options 'selection _criteria {action }' input-file>uitvoerbestand> -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>medewerker.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-opdracht houdt een huidige telling bij van het aantal invoerrecords. Houd er rekening mee dat records meestal lijnen zijn. De opdracht Awk voert de patroon-/actie-instructies één keer uit voor elke record in een bestand. NF: NF-opdracht houdt het aantal velden binnen het huidige invoerrecord bij. FS: FS-opdracht bevat het veldscheidingsteken dat wordt gebruikt om velden op de invoerregel te verdelen. De standaardwaarde is witruimte, dat wil zeggen spatie- en tabtekens. FS kan opnieuw worden toegewezen aan een ander teken (meestal in BEGIN) om het veldscheidingsteken te wijzigen. RS: RS-opdracht slaat het huidige recordscheidingsteken op. Omdat een invoerregel standaard het invoerrecord is, is het standaardscheidingsteken voor records een nieuwe regel. OFS: OFS-opdracht slaat het uitvoerveldscheidingsteken op, dat de velden scheidt wanneer Awk ze afdrukt. De standaardinstelling is een lege ruimte. Wanneer print meerdere parameters bevat, gescheiden door komma's, wordt de waarde van OFS tussen elke parameter afgedrukt. ORS: ORS-opdracht slaat het uitvoerrecordscheidingsteken op, dat de uitvoerregels scheidt wanneer Awk ze afdrukt. De standaardwaarde is een newline-teken. print voert automatisch de inhoud van ORS uit aan het einde van wat het ook mag afdrukken.
$ 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 = lengte($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>
tweevoudig java
- NR: NR-opdracht houdt een huidige telling bij van het aantal invoerrecords. Houd er rekening mee dat records meestal lijnen zijn. De opdracht Awk voert de patroon-/actie-instructies één keer uit voor elke record in een bestand. NF: NF-opdracht houdt het aantal velden binnen het huidige invoerrecord bij. FS: FS-opdracht bevat het veldscheidingsteken dat wordt gebruikt om velden op de invoerregel te verdelen. De standaardwaarde is witruimte, dat wil zeggen spatie- en tabtekens. FS kan opnieuw worden toegewezen aan een ander teken (meestal in BEGIN) om het veldscheidingsteken te wijzigen. RS: RS-opdracht slaat het huidige recordscheidingsteken op. Omdat een invoerregel standaard het invoerrecord is, is het standaardscheidingsteken voor records een nieuwe regel. OFS: OFS-opdracht slaat het uitvoerveldscheidingsteken op, dat de velden scheidt wanneer Awk ze afdrukt. De standaardinstelling is een lege ruimte. Wanneer print meerdere parameters bevat, gescheiden door komma's, wordt de waarde van OFS tussen elke parameter afgedrukt. ORS: ORS-opdracht slaat het uitvoerrecordscheidingsteken op, dat de uitvoerregels scheidt wanneer Awk ze afdrukt. De standaardwaarde is een newline-teken. print voert automatisch de inhoud van ORS uit aan het einde van wat het ook mag afdrukken.
Voorbeelden:
Gebruik van ingebouwde NR-variabelen (Display Line Number)
$ awk '{print NR,Awk is een scripttaal die wordt gebruikt voor het manipuleren van gegevens en het genereren van rapporten. De programmeertaal awk command vereist geen compilatie en stelt de gebruiker in staat variabelen, numerieke functies, stringfuncties en logische operatoren te gebruiken.
Awk is een hulpprogramma waarmee een programmeur kleine maar effectieve programma's kan schrijven in de vorm van instructies die tekstpatronen definiëren waarnaar in elke regel van een document moet worden gezocht en de actie die moet worden ondernomen wanneer er een overeenkomst wordt gevonden binnen een document. lijn. Awk wordt meestal gebruikt voor het scannen en verwerken van patronen. Het doorzoekt een of meer bestanden om te zien of deze regels bevatten die overeenkomen met de opgegeven patronen en voert vervolgens de bijbehorende acties uit.
Awk is een afkorting van de namen van de ontwikkelaars: Aho, Weinberger en Kernighan.
WAT KUNNEN WE DOEN MET AWK?
1. AWK-operaties:
(a) Scant een bestand regel voor regel
(b) Splitst elke invoerregel in velden
(c) Vergelijkt invoerregels/velden met patroon
(d) Voert actie(s) uit op overeenkomende lijnen
2. Handig voor:
(a) Gegevensbestanden transformeren
(b) Opgemaakte rapporten produceren
3. Programmeerconstructies:
(a) Formatteer uitvoerregels
(b) Rekenkundige en stringbewerkingen
(c) Voorwaardelijke waarden en lussen
Syntaxis:
awk options 'selection _criteria {action }' input-file>uitvoerbestand> Opties:
-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>
Voorbeeldopdrachten
Voorbeeld:
Beschouw het volgende tekstbestand als invoerbestand voor alle onderstaande gevallen:
$cat>medewerker.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. Standaardgedrag van Awk: Standaard drukt Awk elke regel met gegevens uit het opgegeven bestand af.
$ awk '{print}' employee.txt> Uitgang:
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>
In het bovenstaande voorbeeld wordt geen patroon gegeven. De acties zijn dus van toepassing op alle lijnen. Actie print zonder enig argument drukt standaard de hele regel af, zodat alle regels van het bestand zonder fouten worden afgedrukt.
2. Druk de lijnen af die overeenkomen met het opgegeven patroon.
$ awk '/manager/ {print}' employee.txt> Uitgang:
ajay manager account 45000 varun manager sales 50000 amit manager account 47000>
In het bovenstaande voorbeeld drukt de opdracht awk alle regels af die overeenkomen met de ‘manager’.
3. Een regel in velden splitsen: Voor elke record, d.w.z. regel, splitst de opdracht awk de record standaard gescheiden door witruimtetekens en slaat deze op in de $n variabelen. Als de regel 4 woorden bevat, wordt deze respectievelijk opgeslagen in $1, $2, $3 en $4. Bovendien vertegenwoordigt $0 de hele lijn.
$ awk '{print $1,$4}' employee.txt> Uitgang:
ajay 45000 sunil 25000 varun 50000 amit 47000 tarun 15000 deepak 23000 sunil 13000 satvik 80000>
In het bovenstaande voorbeeld vertegenwoordigen $1 en $4 respectievelijk de velden Naam en Salaris.
Ingebouwde variabelen in Awk
De ingebouwde variabelen van Awk omvatten de veldvariabelen – $1, $2, $3, enzovoort ($0 is de hele regel) – die een regel tekst opsplitsen in afzonderlijke woorden of stukjes die velden worden genoemd.
NR: NR-opdracht houdt een huidige telling bij van het aantal invoerrecords. Houd er rekening mee dat records meestal lijnen zijn. De opdracht Awk voert de patroon-/actie-instructies één keer uit voor elke record in een bestand. NF: NF-opdracht houdt het aantal velden binnen het huidige invoerrecord bij. FS: FS-opdracht bevat het veldscheidingsteken dat wordt gebruikt om velden op de invoerregel te verdelen. De standaardwaarde is witruimte, dat wil zeggen spatie- en tabtekens. FS kan opnieuw worden toegewezen aan een ander teken (meestal in BEGIN) om het veldscheidingsteken te wijzigen. RS: RS-opdracht slaat het huidige recordscheidingsteken op. Omdat een invoerregel standaard het invoerrecord is, is het standaardscheidingsteken voor records een nieuwe regel. OFS: OFS-opdracht slaat het uitvoerveldscheidingsteken op, dat de velden scheidt wanneer Awk ze afdrukt. De standaardinstelling is een lege ruimte. Wanneer print meerdere parameters bevat, gescheiden door komma's, wordt de waarde van OFS tussen elke parameter afgedrukt. ORS: ORS-opdracht slaat het uitvoerrecordscheidingsteken op, dat de uitvoerregels scheidt wanneer Awk ze afdrukt. De standaardwaarde is een newline-teken. print voert automatisch de inhoud van ORS uit aan het einde van wat het ook mag afdrukken.
Voorbeelden:
Gebruik van ingebouwde NR-variabelen (Display Line Number)
$ awk '{print NR,$0}' employee.txt> Uitgang:
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>
In het bovenstaande voorbeeld drukt de opdracht awk met NR alle regels samen met het regelnummer af.
Gebruik van ingebouwde NF-variabelen (Laatste veld weergeven)
$ awk '{print $1,$NF}' employee.txt> Uitgang:
ajay 45000 sunil 25000 varun 50000 amit 47000 tarun 15000 deepak 23000 sunil 13000 satvik 80000>
In het bovenstaande voorbeeld staat $1 voor Naam en $NF voor Salaris. We kunnen het salaris verkrijgen met $NF , waarbij $NF het laatste veld vertegenwoordigt.
Een ander gebruik van ingebouwde NR-variabelen (Display Line From 3 tot 6)
$ awk 'NR==3, NR==6 {print NR,$0}' employee.txt> Uitgang:
3 varun manager sales 50000 4 amit manager account 47000 5 tarun peon sales 15000 6 deepak clerk sales 23000>
Meer voorbeelden
Voor het opgegeven tekstbestand:
$cat>geeksforgeeks.txt A B C Tarun A12 1 Man B6 2 Praveen M42 3>
1) Om het eerste item af te drukken samen met het rijnummer (NR), gescheiden door – van elke regel in geeksforgeeks.txt:
$ awk '{print NR '- ' $1 }' geeksforgeeks.txt> 1 - A 2 - Tarun 3 – Manav 4 - Praveen>
2) Om de tweede kolom/item van geeksforgeeks.txt terug te geven:
De vraag zou moeten zijn: - Om de tweede kolom/item van geeksforgeeks.txt terug te geven:
$ awk '{print $2}' geeksforgeeks.txt> B A12 B6 M42>
3) Om eventuele niet-lege regels af te drukken, indien aanwezig
$ awk 'NF <0' geeksforgeeks.txt>
hier moet NF niet kleiner zijn dan 0 en de gebruiker moet ook het regelnummer afdrukken:
juiste antwoord: awk ‘NF == 0 {print NR}’ geeksforgeeks.txt
OF
awk ‘NF <= 0 {print NR}’ geeksforgeeks.txt
0>
4) Om de lengte van de langste regel in het bestand te vinden:
$ awk '{ if (length($0)>max) max = lengte($0) } END { print max }' geeksforgeeks.txt> 13>
5) Om de regels in een bestand te tellen:
$ awk 'END { print NR }' geeksforgeeks.txt> 3>
6) Afdrukregels met meer dan 10 tekens:
$ awk 'length($0)>10' geeksforgeeks.txt>
Tarun A12 1 Praveen M42 3>
7) Om een tekenreeks in een specifieke kolom te zoeken/controleren:
$ awk '{ if($3 == 'B6') print $0;}' geeksforgeeks.txt> 8) Om de vierkanten van de eerste getallen van 1 tot n af te drukken, zeg je 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> Uitgang:
Java converteert char naar int
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>
In het bovenstaande voorbeeld drukt de opdracht awk met NR alle regels samen met het regelnummer af.
Gebruik van ingebouwde NF-variabelen (Laatste veld weergeven)
$ awk '{print ,$NF}' employee.txt> Uitgang:
ajay 45000 sunil 25000 varun 50000 amit 47000 tarun 15000 deepak 23000 sunil 13000 satvik 80000>
In het bovenstaande voorbeeld staat voor Naam en $NF voor Salaris. We kunnen het salaris verkrijgen met $NF , waarbij $NF het laatste veld vertegenwoordigt.
Een ander gebruik van ingebouwde NR-variabelen (Display Line From 3 tot 6)
$ awk 'NR==3, NR==6 {print NR,Awk is een scripttaal die wordt gebruikt voor het manipuleren van gegevens en het genereren van rapporten. De programmeertaal awk command vereist geen compilatie en stelt de gebruiker in staat variabelen, numerieke functies, stringfuncties en logische operatoren te gebruiken.
Awk is een hulpprogramma waarmee een programmeur kleine maar effectieve programma's kan schrijven in de vorm van instructies die tekstpatronen definiëren waarnaar in elke regel van een document moet worden gezocht en de actie die moet worden ondernomen wanneer er een overeenkomst wordt gevonden binnen een document. lijn. Awk wordt meestal gebruikt voor het scannen en verwerken van patronen. Het doorzoekt een of meer bestanden om te zien of deze regels bevatten die overeenkomen met de opgegeven patronen en voert vervolgens de bijbehorende acties uit.
Awk is een afkorting van de namen van de ontwikkelaars: Aho, Weinberger en Kernighan.
WAT KUNNEN WE DOEN MET AWK?
1. AWK-operaties:
(a) Scant een bestand regel voor regel
(b) Splitst elke invoerregel in velden
(c) Vergelijkt invoerregels/velden met patroon
(d) Voert actie(s) uit op overeenkomende lijnen
2. Handig voor:
(a) Gegevensbestanden transformeren
(b) Opgemaakte rapporten produceren
3. Programmeerconstructies:
(a) Formatteer uitvoerregels
(b) Rekenkundige en stringbewerkingen
(c) Voorwaardelijke waarden en lussen
Syntaxis:
awk options 'selection _criteria {action }' input-file>uitvoerbestand> Opties:
-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>
Voorbeeldopdrachten
Voorbeeld:
Beschouw het volgende tekstbestand als invoerbestand voor alle onderstaande gevallen:
$cat>medewerker.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. Standaardgedrag van Awk: Standaard drukt Awk elke regel met gegevens uit het opgegeven bestand af.
$ awk '{print}' employee.txt> Uitgang:
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>
In het bovenstaande voorbeeld wordt geen patroon gegeven. De acties zijn dus van toepassing op alle lijnen. Actie print zonder enig argument drukt standaard de hele regel af, zodat alle regels van het bestand zonder fouten worden afgedrukt.
2. Druk de lijnen af die overeenkomen met het opgegeven patroon.
$ awk '/manager/ {print}' employee.txt> Uitgang:
ajay manager account 45000 varun manager sales 50000 amit manager account 47000>
In het bovenstaande voorbeeld drukt de opdracht awk alle regels af die overeenkomen met de ‘manager’.
3. Een regel in velden splitsen: Voor elke record, d.w.z. regel, splitst de opdracht awk de record standaard gescheiden door witruimtetekens en slaat deze op in de $n variabelen. Als de regel 4 woorden bevat, wordt deze respectievelijk opgeslagen in $1, $2, $3 en $4. Bovendien vertegenwoordigt $0 de hele lijn.
$ awk '{print $1,$4}' employee.txt> Uitgang:
ajay 45000 sunil 25000 varun 50000 amit 47000 tarun 15000 deepak 23000 sunil 13000 satvik 80000>
In het bovenstaande voorbeeld vertegenwoordigen $1 en $4 respectievelijk de velden Naam en Salaris.
Ingebouwde variabelen in Awk
De ingebouwde variabelen van Awk omvatten de veldvariabelen – $1, $2, $3, enzovoort ($0 is de hele regel) – die een regel tekst opsplitsen in afzonderlijke woorden of stukjes die velden worden genoemd.
NR: NR-opdracht houdt een huidige telling bij van het aantal invoerrecords. Houd er rekening mee dat records meestal lijnen zijn. De opdracht Awk voert de patroon-/actie-instructies één keer uit voor elke record in een bestand. NF: NF-opdracht houdt het aantal velden binnen het huidige invoerrecord bij. FS: FS-opdracht bevat het veldscheidingsteken dat wordt gebruikt om velden op de invoerregel te verdelen. De standaardwaarde is witruimte, dat wil zeggen spatie- en tabtekens. FS kan opnieuw worden toegewezen aan een ander teken (meestal in BEGIN) om het veldscheidingsteken te wijzigen. RS: RS-opdracht slaat het huidige recordscheidingsteken op. Omdat een invoerregel standaard het invoerrecord is, is het standaardscheidingsteken voor records een nieuwe regel. OFS: OFS-opdracht slaat het uitvoerveldscheidingsteken op, dat de velden scheidt wanneer Awk ze afdrukt. De standaardinstelling is een lege ruimte. Wanneer print meerdere parameters bevat, gescheiden door komma's, wordt de waarde van OFS tussen elke parameter afgedrukt. ORS: ORS-opdracht slaat het uitvoerrecordscheidingsteken op, dat de uitvoerregels scheidt wanneer Awk ze afdrukt. De standaardwaarde is een newline-teken. print voert automatisch de inhoud van ORS uit aan het einde van wat het ook mag afdrukken.
Voorbeelden:
Gebruik van ingebouwde NR-variabelen (Display Line Number)
$ awk '{print NR,$0}' employee.txt> Uitgang:
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>
In het bovenstaande voorbeeld drukt de opdracht awk met NR alle regels samen met het regelnummer af.
Gebruik van ingebouwde NF-variabelen (Laatste veld weergeven)
$ awk '{print $1,$NF}' employee.txt> Uitgang:
ajay 45000 sunil 25000 varun 50000 amit 47000 tarun 15000 deepak 23000 sunil 13000 satvik 80000>
In het bovenstaande voorbeeld staat $1 voor Naam en $NF voor Salaris. We kunnen het salaris verkrijgen met $NF , waarbij $NF het laatste veld vertegenwoordigt.
Een ander gebruik van ingebouwde NR-variabelen (Display Line From 3 tot 6)
$ awk 'NR==3, NR==6 {print NR,$0}' employee.txt> Uitgang:
3 varun manager sales 50000 4 amit manager account 47000 5 tarun peon sales 15000 6 deepak clerk sales 23000>
Meer voorbeelden
Voor het opgegeven tekstbestand:
$cat>geeksforgeeks.txt A B C Tarun A12 1 Man B6 2 Praveen M42 3>
1) Om het eerste item af te drukken samen met het rijnummer (NR), gescheiden door – van elke regel in geeksforgeeks.txt:
$ awk '{print NR '- ' $1 }' geeksforgeeks.txt> 1 - A 2 - Tarun 3 – Manav 4 - Praveen>
2) Om de tweede kolom/item van geeksforgeeks.txt terug te geven:
De vraag zou moeten zijn: - Om de tweede kolom/item van geeksforgeeks.txt terug te geven:
$ awk '{print $2}' geeksforgeeks.txt> B A12 B6 M42>
3) Om eventuele niet-lege regels af te drukken, indien aanwezig
$ awk 'NF <0' geeksforgeeks.txt>
hier moet NF niet kleiner zijn dan 0 en de gebruiker moet ook het regelnummer afdrukken:
juiste antwoord: awk ‘NF == 0 {print NR}’ geeksforgeeks.txt
OF
awk ‘NF <= 0 {print NR}’ geeksforgeeks.txt
0>
4) Om de lengte van de langste regel in het bestand te vinden:
$ awk '{ if (length($0)>max) max = lengte($0) } END { print max }' geeksforgeeks.txt> 13>
5) Om de regels in een bestand te tellen:
$ awk 'END { print NR }' geeksforgeeks.txt> 3>
6) Afdrukregels met meer dan 10 tekens:
$ awk 'length($0)>10' geeksforgeeks.txt>
Tarun A12 1 Praveen M42 3>
7) Om een tekenreeks in een specifieke kolom te zoeken/controleren:
$ awk '{ if($3 == 'B6') print $0;}' geeksforgeeks.txt> 8) Om de vierkanten van de eerste getallen van 1 tot n af te drukken, zeg je 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> Uitgang:
3 varun manager sales 50000 4 amit manager account 47000 5 tarun peon sales 15000 6 deepak clerk sales 23000>
Meer voorbeelden
Voor het opgegeven tekstbestand:
$cat>geeksforgeeks.txt A B C Tarun A12 1 Man B6 2 Praveen M42 3>
1) Om het eerste item af te drukken samen met het rijnummer (NR), gescheiden door – van elke regel in geeksforgeeks.txt:
$ awk '{print NR '- ' }' geeksforgeeks.txt> 1 - A 2 - Tarun 3 – Manav 4 - Praveen>
2) Om de tweede kolom/item van geeksforgeeks.txt terug te geven:
De vraag zou moeten zijn: - Om de tweede kolom/item van geeksforgeeks.txt terug te geven:
$ awk '{print }' geeksforgeeks.txt> B A12 B6 M42>
3) Om eventuele niet-lege regels af te drukken, indien aanwezig
$ awk 'NF <0' geeksforgeeks.txt>
hier moet NF niet kleiner zijn dan 0 en de gebruiker moet ook het regelnummer afdrukken:
juiste antwoord: awk ‘NF == 0 {print NR}’ geeksforgeeks.txt
OF
awk ‘NF <= 0 {print NR}’ geeksforgeeks.txt
0>
4) Om de lengte van de langste regel in het bestand te vinden:
$ awk '{ if (length(Awk is een scripttaal die wordt gebruikt voor het manipuleren van gegevens en het genereren van rapporten. De programmeertaal awk command vereist geen compilatie en stelt de gebruiker in staat variabelen, numerieke functies, stringfuncties en logische operatoren te gebruiken.
Awk is een hulpprogramma waarmee een programmeur kleine maar effectieve programma's kan schrijven in de vorm van instructies die tekstpatronen definiëren waarnaar in elke regel van een document moet worden gezocht en de actie die moet worden ondernomen wanneer er een overeenkomst wordt gevonden binnen een document. lijn. Awk wordt meestal gebruikt voor het scannen en verwerken van patronen. Het doorzoekt een of meer bestanden om te zien of deze regels bevatten die overeenkomen met de opgegeven patronen en voert vervolgens de bijbehorende acties uit.
Awk is een afkorting van de namen van de ontwikkelaars: Aho, Weinberger en Kernighan.
WAT KUNNEN WE DOEN MET AWK?
1. AWK-operaties:
(a) Scant een bestand regel voor regel
(b) Splitst elke invoerregel in velden
(c) Vergelijkt invoerregels/velden met patroon
(d) Voert actie(s) uit op overeenkomende lijnen
2. Handig voor:
(a) Gegevensbestanden transformeren
(b) Opgemaakte rapporten produceren
3. Programmeerconstructies:
(a) Formatteer uitvoerregels
(b) Rekenkundige en stringbewerkingen
(c) Voorwaardelijke waarden en lussen
Syntaxis:
awk options 'selection _criteria {action }' input-file>uitvoerbestand> Opties:
-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>
Voorbeeldopdrachten
Voorbeeld:
Beschouw het volgende tekstbestand als invoerbestand voor alle onderstaande gevallen:
$cat>medewerker.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. Standaardgedrag van Awk: Standaard drukt Awk elke regel met gegevens uit het opgegeven bestand af.
$ awk '{print}' employee.txt> Uitgang:
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>
In het bovenstaande voorbeeld wordt geen patroon gegeven. De acties zijn dus van toepassing op alle lijnen. Actie print zonder enig argument drukt standaard de hele regel af, zodat alle regels van het bestand zonder fouten worden afgedrukt.
2. Druk de lijnen af die overeenkomen met het opgegeven patroon.
$ awk '/manager/ {print}' employee.txt> Uitgang:
ajay manager account 45000 varun manager sales 50000 amit manager account 47000>
In het bovenstaande voorbeeld drukt de opdracht awk alle regels af die overeenkomen met de ‘manager’.
3. Een regel in velden splitsen: Voor elke record, d.w.z. regel, splitst de opdracht awk de record standaard gescheiden door witruimtetekens en slaat deze op in de $n variabelen. Als de regel 4 woorden bevat, wordt deze respectievelijk opgeslagen in $1, $2, $3 en $4. Bovendien vertegenwoordigt $0 de hele lijn.
$ awk '{print $1,$4}' employee.txt> Uitgang:
ajay 45000 sunil 25000 varun 50000 amit 47000 tarun 15000 deepak 23000 sunil 13000 satvik 80000>
In het bovenstaande voorbeeld vertegenwoordigen $1 en $4 respectievelijk de velden Naam en Salaris.
Ingebouwde variabelen in Awk
De ingebouwde variabelen van Awk omvatten de veldvariabelen – $1, $2, $3, enzovoort ($0 is de hele regel) – die een regel tekst opsplitsen in afzonderlijke woorden of stukjes die velden worden genoemd.
NR: NR-opdracht houdt een huidige telling bij van het aantal invoerrecords. Houd er rekening mee dat records meestal lijnen zijn. De opdracht Awk voert de patroon-/actie-instructies één keer uit voor elke record in een bestand. NF: NF-opdracht houdt het aantal velden binnen het huidige invoerrecord bij. FS: FS-opdracht bevat het veldscheidingsteken dat wordt gebruikt om velden op de invoerregel te verdelen. De standaardwaarde is witruimte, dat wil zeggen spatie- en tabtekens. FS kan opnieuw worden toegewezen aan een ander teken (meestal in BEGIN) om het veldscheidingsteken te wijzigen. RS: RS-opdracht slaat het huidige recordscheidingsteken op. Omdat een invoerregel standaard het invoerrecord is, is het standaardscheidingsteken voor records een nieuwe regel. OFS: OFS-opdracht slaat het uitvoerveldscheidingsteken op, dat de velden scheidt wanneer Awk ze afdrukt. De standaardinstelling is een lege ruimte. Wanneer print meerdere parameters bevat, gescheiden door komma's, wordt de waarde van OFS tussen elke parameter afgedrukt. ORS: ORS-opdracht slaat het uitvoerrecordscheidingsteken op, dat de uitvoerregels scheidt wanneer Awk ze afdrukt. De standaardwaarde is een newline-teken. print voert automatisch de inhoud van ORS uit aan het einde van wat het ook mag afdrukken.
Voorbeelden:
Gebruik van ingebouwde NR-variabelen (Display Line Number)
$ awk '{print NR,$0}' employee.txt> Uitgang:
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>
In het bovenstaande voorbeeld drukt de opdracht awk met NR alle regels samen met het regelnummer af.
Gebruik van ingebouwde NF-variabelen (Laatste veld weergeven)
$ awk '{print $1,$NF}' employee.txt> Uitgang:
ajay 45000 sunil 25000 varun 50000 amit 47000 tarun 15000 deepak 23000 sunil 13000 satvik 80000>
In het bovenstaande voorbeeld staat $1 voor Naam en $NF voor Salaris. We kunnen het salaris verkrijgen met $NF , waarbij $NF het laatste veld vertegenwoordigt.
Een ander gebruik van ingebouwde NR-variabelen (Display Line From 3 tot 6)
$ awk 'NR==3, NR==6 {print NR,$0}' employee.txt> Uitgang:
3 varun manager sales 50000 4 amit manager account 47000 5 tarun peon sales 15000 6 deepak clerk sales 23000>
Meer voorbeelden
Voor het opgegeven tekstbestand:
$cat>geeksforgeeks.txt A B C Tarun A12 1 Man B6 2 Praveen M42 3>
1) Om het eerste item af te drukken samen met het rijnummer (NR), gescheiden door – van elke regel in geeksforgeeks.txt:
$ awk '{print NR '- ' $1 }' geeksforgeeks.txt> 1 - A 2 - Tarun 3 – Manav 4 - Praveen>
2) Om de tweede kolom/item van geeksforgeeks.txt terug te geven:
De vraag zou moeten zijn: - Om de tweede kolom/item van geeksforgeeks.txt terug te geven:
$ awk '{print $2}' geeksforgeeks.txt> B A12 B6 M42>
3) Om eventuele niet-lege regels af te drukken, indien aanwezig
$ awk 'NF <0' geeksforgeeks.txt>
hier moet NF niet kleiner zijn dan 0 en de gebruiker moet ook het regelnummer afdrukken:
juiste antwoord: awk ‘NF == 0 {print NR}’ geeksforgeeks.txt
OF
awk ‘NF <= 0 {print NR}’ geeksforgeeks.txt
0>
4) Om de lengte van de langste regel in het bestand te vinden:
$ awk '{ if (length($0)>max) max = lengte($0) } END { print max }' geeksforgeeks.txt> 13>
5) Om de regels in een bestand te tellen:
$ awk 'END { print NR }' geeksforgeeks.txt> 3>
6) Afdrukregels met meer dan 10 tekens:
$ awk 'length($0)>10' geeksforgeeks.txt>
Tarun A12 1 Praveen M42 3>
7) Om een tekenreeks in een specifieke kolom te zoeken/controleren:
$ awk '{ if($3 == 'B6') print $0;}' geeksforgeeks.txt> 8) Om de vierkanten van de eerste getallen van 1 tot n af te drukken, zeg je 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 = lengte(Awk is een scripttaal die wordt gebruikt voor het manipuleren van gegevens en het genereren van rapporten. De programmeertaal awk command vereist geen compilatie en stelt de gebruiker in staat variabelen, numerieke functies, stringfuncties en logische operatoren te gebruiken.
Awk is een hulpprogramma waarmee een programmeur kleine maar effectieve programma's kan schrijven in de vorm van instructies die tekstpatronen definiëren waarnaar in elke regel van een document moet worden gezocht en de actie die moet worden ondernomen wanneer er een overeenkomst wordt gevonden binnen een document. lijn. Awk wordt meestal gebruikt voor het scannen en verwerken van patronen. Het doorzoekt een of meer bestanden om te zien of deze regels bevatten die overeenkomen met de opgegeven patronen en voert vervolgens de bijbehorende acties uit.
Awk is een afkorting van de namen van de ontwikkelaars: Aho, Weinberger en Kernighan.
WAT KUNNEN WE DOEN MET AWK?
1. AWK-operaties:
(a) Scant een bestand regel voor regel
(b) Splitst elke invoerregel in velden
(c) Vergelijkt invoerregels/velden met patroon
(d) Voert actie(s) uit op overeenkomende lijnen
2. Handig voor:
(a) Gegevensbestanden transformeren
(b) Opgemaakte rapporten produceren
3. Programmeerconstructies:
(a) Formatteer uitvoerregels
(b) Rekenkundige en stringbewerkingen
(c) Voorwaardelijke waarden en lussen
Syntaxis:
awk options 'selection _criteria {action }' input-file>uitvoerbestand> Opties:
-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>
Voorbeeldopdrachten
Voorbeeld:
Beschouw het volgende tekstbestand als invoerbestand voor alle onderstaande gevallen:
$cat>medewerker.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. Standaardgedrag van Awk: Standaard drukt Awk elke regel met gegevens uit het opgegeven bestand af.
$ awk '{print}' employee.txt> Uitgang:
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>
In het bovenstaande voorbeeld wordt geen patroon gegeven. De acties zijn dus van toepassing op alle lijnen. Actie print zonder enig argument drukt standaard de hele regel af, zodat alle regels van het bestand zonder fouten worden afgedrukt.
2. Druk de lijnen af die overeenkomen met het opgegeven patroon.
$ awk '/manager/ {print}' employee.txt> Uitgang:
ajay manager account 45000 varun manager sales 50000 amit manager account 47000>
In het bovenstaande voorbeeld drukt de opdracht awk alle regels af die overeenkomen met de ‘manager’.
3. Een regel in velden splitsen: Voor elke record, d.w.z. regel, splitst de opdracht awk de record standaard gescheiden door witruimtetekens en slaat deze op in de $n variabelen. Als de regel 4 woorden bevat, wordt deze respectievelijk opgeslagen in $1, $2, $3 en $4. Bovendien vertegenwoordigt $0 de hele lijn.
$ awk '{print $1,$4}' employee.txt> Uitgang:
ajay 45000 sunil 25000 varun 50000 amit 47000 tarun 15000 deepak 23000 sunil 13000 satvik 80000>
In het bovenstaande voorbeeld vertegenwoordigen $1 en $4 respectievelijk de velden Naam en Salaris.
Ingebouwde variabelen in Awk
De ingebouwde variabelen van Awk omvatten de veldvariabelen – $1, $2, $3, enzovoort ($0 is de hele regel) – die een regel tekst opsplitsen in afzonderlijke woorden of stukjes die velden worden genoemd.
NR: NR-opdracht houdt een huidige telling bij van het aantal invoerrecords. Houd er rekening mee dat records meestal lijnen zijn. De opdracht Awk voert de patroon-/actie-instructies één keer uit voor elke record in een bestand. NF: NF-opdracht houdt het aantal velden binnen het huidige invoerrecord bij. FS: FS-opdracht bevat het veldscheidingsteken dat wordt gebruikt om velden op de invoerregel te verdelen. De standaardwaarde is witruimte, dat wil zeggen spatie- en tabtekens. FS kan opnieuw worden toegewezen aan een ander teken (meestal in BEGIN) om het veldscheidingsteken te wijzigen. RS: RS-opdracht slaat het huidige recordscheidingsteken op. Omdat een invoerregel standaard het invoerrecord is, is het standaardscheidingsteken voor records een nieuwe regel. OFS: OFS-opdracht slaat het uitvoerveldscheidingsteken op, dat de velden scheidt wanneer Awk ze afdrukt. De standaardinstelling is een lege ruimte. Wanneer print meerdere parameters bevat, gescheiden door komma's, wordt de waarde van OFS tussen elke parameter afgedrukt. ORS: ORS-opdracht slaat het uitvoerrecordscheidingsteken op, dat de uitvoerregels scheidt wanneer Awk ze afdrukt. De standaardwaarde is een newline-teken. print voert automatisch de inhoud van ORS uit aan het einde van wat het ook mag afdrukken.
Voorbeelden:
Gebruik van ingebouwde NR-variabelen (Display Line Number)
$ awk '{print NR,$0}' employee.txt> Uitgang:
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>
In het bovenstaande voorbeeld drukt de opdracht awk met NR alle regels samen met het regelnummer af.
Gebruik van ingebouwde NF-variabelen (Laatste veld weergeven)
$ awk '{print $1,$NF}' employee.txt> Uitgang:
ajay 45000 sunil 25000 varun 50000 amit 47000 tarun 15000 deepak 23000 sunil 13000 satvik 80000>
In het bovenstaande voorbeeld staat $1 voor Naam en $NF voor Salaris. We kunnen het salaris verkrijgen met $NF , waarbij $NF het laatste veld vertegenwoordigt.
Een ander gebruik van ingebouwde NR-variabelen (Display Line From 3 tot 6)
$ awk 'NR==3, NR==6 {print NR,$0}' employee.txt> Uitgang:
3 varun manager sales 50000 4 amit manager account 47000 5 tarun peon sales 15000 6 deepak clerk sales 23000>
Meer voorbeelden
Voor het opgegeven tekstbestand:
$cat>geeksforgeeks.txt A B C Tarun A12 1 Man B6 2 Praveen M42 3>
1) Om het eerste item af te drukken samen met het rijnummer (NR), gescheiden door – van elke regel in geeksforgeeks.txt:
$ awk '{print NR '- ' $1 }' geeksforgeeks.txt> 1 - A 2 - Tarun 3 – Manav 4 - Praveen>
2) Om de tweede kolom/item van geeksforgeeks.txt terug te geven:
De vraag zou moeten zijn: - Om de tweede kolom/item van geeksforgeeks.txt terug te geven:
$ awk '{print $2}' geeksforgeeks.txt> B A12 B6 M42>
3) Om eventuele niet-lege regels af te drukken, indien aanwezig
$ awk 'NF <0' geeksforgeeks.txt>
hier moet NF niet kleiner zijn dan 0 en de gebruiker moet ook het regelnummer afdrukken:
juiste antwoord: awk ‘NF == 0 {print NR}’ geeksforgeeks.txt
OF
awk ‘NF <= 0 {print NR}’ geeksforgeeks.txt
0>
4) Om de lengte van de langste regel in het bestand te vinden:
$ awk '{ if (length($0)>max) max = lengte($0) } END { print max }' geeksforgeeks.txt> 13>
5) Om de regels in een bestand te tellen:
$ awk 'END { print NR }' geeksforgeeks.txt> 3>
6) Afdrukregels met meer dan 10 tekens:
$ awk 'length($0)>10' geeksforgeeks.txt>
Tarun A12 1 Praveen M42 3>
7) Om een tekenreeks in een specifieke kolom te zoeken/controleren:
$ awk '{ if($3 == 'B6') print $0;}' geeksforgeeks.txt> 8) Om de vierkanten van de eerste getallen van 1 tot n af te drukken, zeg je 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) Om de regels in een bestand te tellen:
$ awk 'END { print NR }' geeksforgeeks.txt> 3>
6) Afdrukregels met meer dan 10 tekens:
$ awk 'length()>10' geeksforgeeks.txt> Awk is een scripttaal die wordt gebruikt voor het manipuleren van gegevens en het genereren van rapporten. De programmeertaal awk command vereist geen compilatie en stelt de gebruiker in staat variabelen, numerieke functies, stringfuncties en logische operatoren te gebruiken.
Awk is een hulpprogramma waarmee een programmeur kleine maar effectieve programma's kan schrijven in de vorm van instructies die tekstpatronen definiëren waarnaar in elke regel van een document moet worden gezocht en de actie die moet worden ondernomen wanneer er een overeenkomst wordt gevonden binnen een document. lijn. Awk wordt meestal gebruikt voor het scannen en verwerken van patronen. Het doorzoekt een of meer bestanden om te zien of deze regels bevatten die overeenkomen met de opgegeven patronen en voert vervolgens de bijbehorende acties uit.
Awk is een afkorting van de namen van de ontwikkelaars: Aho, Weinberger en Kernighan.
WAT KUNNEN WE DOEN MET AWK?
1. AWK-operaties:
(a) Scant een bestand regel voor regel
(b) Splitst elke invoerregel in velden
(c) Vergelijkt invoerregels/velden met patroon
(d) Voert actie(s) uit op overeenkomende lijnen2. Handig voor:
(a) Gegevensbestanden transformeren
(b) Opgemaakte rapporten produceren3. Programmeerconstructies:
(a) Formatteer uitvoerregels
(b) Rekenkundige en stringbewerkingen
(c) Voorwaardelijke waarden en lussenSyntaxis:
awk options 'selection _criteria {action }' input-file>uitvoerbestand>Opties:
-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>Voorbeeldopdrachten
Voorbeeld:
Beschouw het volgende tekstbestand als invoerbestand voor alle onderstaande gevallen:
$cat>medewerker.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. Standaardgedrag van Awk: Standaard drukt Awk elke regel met gegevens uit het opgegeven bestand af.
$ awk '{print}' employee.txt>Uitgang:
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>In het bovenstaande voorbeeld wordt geen patroon gegeven. De acties zijn dus van toepassing op alle lijnen. Actie print zonder enig argument drukt standaard de hele regel af, zodat alle regels van het bestand zonder fouten worden afgedrukt.
2. Druk de lijnen af die overeenkomen met het opgegeven patroon.
$ awk '/manager/ {print}' employee.txt>Uitgang:
ajay manager account 45000 varun manager sales 50000 amit manager account 47000>In het bovenstaande voorbeeld drukt de opdracht awk alle regels af die overeenkomen met de ‘manager’.
3. Een regel in velden splitsen: Voor elke record, d.w.z. regel, splitst de opdracht awk de record standaard gescheiden door witruimtetekens en slaat deze op in de $n variabelen. Als de regel 4 woorden bevat, wordt deze respectievelijk opgeslagen in $1, $2, $3 en $4. Bovendien vertegenwoordigt $0 de hele lijn.
$ awk '{print $1,$4}' employee.txt>Uitgang:
ajay 45000 sunil 25000 varun 50000 amit 47000 tarun 15000 deepak 23000 sunil 13000 satvik 80000>In het bovenstaande voorbeeld vertegenwoordigen $1 en $4 respectievelijk de velden Naam en Salaris.
Ingebouwde variabelen in Awk
De ingebouwde variabelen van Awk omvatten de veldvariabelen – $1, $2, $3, enzovoort ($0 is de hele regel) – die een regel tekst opsplitsen in afzonderlijke woorden of stukjes die velden worden genoemd.
NR: NR-opdracht houdt een huidige telling bij van het aantal invoerrecords. Houd er rekening mee dat records meestal lijnen zijn. De opdracht Awk voert de patroon-/actie-instructies één keer uit voor elke record in een bestand. NF: NF-opdracht houdt het aantal velden binnen het huidige invoerrecord bij. FS: FS-opdracht bevat het veldscheidingsteken dat wordt gebruikt om velden op de invoerregel te verdelen. De standaardwaarde is witruimte, dat wil zeggen spatie- en tabtekens. FS kan opnieuw worden toegewezen aan een ander teken (meestal in BEGIN) om het veldscheidingsteken te wijzigen. RS: RS-opdracht slaat het huidige recordscheidingsteken op. Omdat een invoerregel standaard het invoerrecord is, is het standaardscheidingsteken voor records een nieuwe regel. OFS: OFS-opdracht slaat het uitvoerveldscheidingsteken op, dat de velden scheidt wanneer Awk ze afdrukt. De standaardinstelling is een lege ruimte. Wanneer print meerdere parameters bevat, gescheiden door komma's, wordt de waarde van OFS tussen elke parameter afgedrukt. ORS: ORS-opdracht slaat het uitvoerrecordscheidingsteken op, dat de uitvoerregels scheidt wanneer Awk ze afdrukt. De standaardwaarde is een newline-teken. print voert automatisch de inhoud van ORS uit aan het einde van wat het ook mag afdrukken.
Voorbeelden:
Gebruik van ingebouwde NR-variabelen (Display Line Number)
$ awk '{print NR,$0}' employee.txt>Uitgang:
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>In het bovenstaande voorbeeld drukt de opdracht awk met NR alle regels samen met het regelnummer af.
Gebruik van ingebouwde NF-variabelen (Laatste veld weergeven)
$ awk '{print $1,$NF}' employee.txt>Uitgang:
ajay 45000 sunil 25000 varun 50000 amit 47000 tarun 15000 deepak 23000 sunil 13000 satvik 80000>In het bovenstaande voorbeeld staat $1 voor Naam en $NF voor Salaris. We kunnen het salaris verkrijgen met $NF , waarbij $NF het laatste veld vertegenwoordigt.
Een ander gebruik van ingebouwde NR-variabelen (Display Line From 3 tot 6)
$ awk 'NR==3, NR==6 {print NR,$0}' employee.txt>Uitgang:
3 varun manager sales 50000 4 amit manager account 47000 5 tarun peon sales 15000 6 deepak clerk sales 23000>Meer voorbeelden
Voor het opgegeven tekstbestand:
$cat>geeksforgeeks.txt A B C Tarun A12 1 Man B6 2 Praveen M42 3>1) Om het eerste item af te drukken samen met het rijnummer (NR), gescheiden door – van elke regel in geeksforgeeks.txt:
$ awk '{print NR '- ' $1 }' geeksforgeeks.txt>1 - A 2 - Tarun 3 – Manav 4 - Praveen>2) Om de tweede kolom/item van geeksforgeeks.txt terug te geven:
De vraag zou moeten zijn: - Om de tweede kolom/item van geeksforgeeks.txt terug te geven:
$ awk '{print $2}' geeksforgeeks.txt>B A12 B6 M42>3) Om eventuele niet-lege regels af te drukken, indien aanwezig
$ awk 'NF <0' geeksforgeeks.txt>hier moet NF niet kleiner zijn dan 0 en de gebruiker moet ook het regelnummer afdrukken:
juiste antwoord: awk ‘NF == 0 {print NR}’ geeksforgeeks.txt
OF
awk ‘NF <= 0 {print NR}’ geeksforgeeks.txt
0>4) Om de lengte van de langste regel in het bestand te vinden:
$ awk '{ if (length($0)>max) max = lengte($0) } END { print max }' geeksforgeeks.txt>13>5) Om de regels in een bestand te tellen:
$ awk 'END { print NR }' geeksforgeeks.txt>3>6) Afdrukregels met meer dan 10 tekens:
$ awk 'length($0)>10' geeksforgeeks.txt>Tarun A12 1 Praveen M42 3>7) Om een tekenreeks in een specifieke kolom te zoeken/controleren:
$ awk '{ if($3 == 'B6') print $0;}' geeksforgeeks.txt>8) Om de vierkanten van de eerste getallen van 1 tot n af te drukken, zeg je 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) Om een tekenreeks in een specifieke kolom te zoeken/controleren:
$ awk '{ if( == 'B6') print Awk is een scripttaal die wordt gebruikt voor het manipuleren van gegevens en het genereren van rapporten. De programmeertaal awk command vereist geen compilatie en stelt de gebruiker in staat variabelen, numerieke functies, stringfuncties en logische operatoren te gebruiken.
Awk is een hulpprogramma waarmee een programmeur kleine maar effectieve programma's kan schrijven in de vorm van instructies die tekstpatronen definiëren waarnaar in elke regel van een document moet worden gezocht en de actie die moet worden ondernomen wanneer er een overeenkomst wordt gevonden binnen een document. lijn. Awk wordt meestal gebruikt voor het scannen en verwerken van patronen. Het doorzoekt een of meer bestanden om te zien of deze regels bevatten die overeenkomen met de opgegeven patronen en voert vervolgens de bijbehorende acties uit.
Awk is een afkorting van de namen van de ontwikkelaars: Aho, Weinberger en Kernighan.
WAT KUNNEN WE DOEN MET AWK?
1. AWK-operaties:
(a) Scant een bestand regel voor regel
(b) Splitst elke invoerregel in velden
(c) Vergelijkt invoerregels/velden met patroon
(d) Voert actie(s) uit op overeenkomende lijnen
2. Handig voor:
(a) Gegevensbestanden transformeren
(b) Opgemaakte rapporten produceren
3. Programmeerconstructies:
(a) Formatteer uitvoerregels
(b) Rekenkundige en stringbewerkingen
(c) Voorwaardelijke waarden en lussen
Syntaxis:
awk options 'selection _criteria {action }' input-file>uitvoerbestand> Opties:
-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>
Voorbeeldopdrachten
Voorbeeld:
Beschouw het volgende tekstbestand als invoerbestand voor alle onderstaande gevallen:
$cat>medewerker.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. Standaardgedrag van Awk: Standaard drukt Awk elke regel met gegevens uit het opgegeven bestand af.
$ awk '{print}' employee.txt> Uitgang:
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>
In het bovenstaande voorbeeld wordt geen patroon gegeven. De acties zijn dus van toepassing op alle lijnen. Actie print zonder enig argument drukt standaard de hele regel af, zodat alle regels van het bestand zonder fouten worden afgedrukt.
2. Druk de lijnen af die overeenkomen met het opgegeven patroon.
$ awk '/manager/ {print}' employee.txt> Uitgang:
ajay manager account 45000 varun manager sales 50000 amit manager account 47000>
In het bovenstaande voorbeeld drukt de opdracht awk alle regels af die overeenkomen met de ‘manager’.
3. Een regel in velden splitsen: Voor elke record, d.w.z. regel, splitst de opdracht awk de record standaard gescheiden door witruimtetekens en slaat deze op in de $n variabelen. Als de regel 4 woorden bevat, wordt deze respectievelijk opgeslagen in $1, $2, $3 en $4. Bovendien vertegenwoordigt $0 de hele lijn.
$ awk '{print $1,$4}' employee.txt> Uitgang:
ajay 45000 sunil 25000 varun 50000 amit 47000 tarun 15000 deepak 23000 sunil 13000 satvik 80000>
In het bovenstaande voorbeeld vertegenwoordigen $1 en $4 respectievelijk de velden Naam en Salaris.
Ingebouwde variabelen in Awk
De ingebouwde variabelen van Awk omvatten de veldvariabelen – $1, $2, $3, enzovoort ($0 is de hele regel) – die een regel tekst opsplitsen in afzonderlijke woorden of stukjes die velden worden genoemd.
NR: NR-opdracht houdt een huidige telling bij van het aantal invoerrecords. Houd er rekening mee dat records meestal lijnen zijn. De opdracht Awk voert de patroon-/actie-instructies één keer uit voor elke record in een bestand. NF: NF-opdracht houdt het aantal velden binnen het huidige invoerrecord bij. FS: FS-opdracht bevat het veldscheidingsteken dat wordt gebruikt om velden op de invoerregel te verdelen. De standaardwaarde is witruimte, dat wil zeggen spatie- en tabtekens. FS kan opnieuw worden toegewezen aan een ander teken (meestal in BEGIN) om het veldscheidingsteken te wijzigen. RS: RS-opdracht slaat het huidige recordscheidingsteken op. Omdat een invoerregel standaard het invoerrecord is, is het standaardscheidingsteken voor records een nieuwe regel. OFS: OFS-opdracht slaat het uitvoerveldscheidingsteken op, dat de velden scheidt wanneer Awk ze afdrukt. De standaardinstelling is een lege ruimte. Wanneer print meerdere parameters bevat, gescheiden door komma's, wordt de waarde van OFS tussen elke parameter afgedrukt. ORS: ORS-opdracht slaat het uitvoerrecordscheidingsteken op, dat de uitvoerregels scheidt wanneer Awk ze afdrukt. De standaardwaarde is een newline-teken. print voert automatisch de inhoud van ORS uit aan het einde van wat het ook mag afdrukken.
Voorbeelden:
Gebruik van ingebouwde NR-variabelen (Display Line Number)
$ awk '{print NR,$0}' employee.txt> Uitgang:
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>
In het bovenstaande voorbeeld drukt de opdracht awk met NR alle regels samen met het regelnummer af.
Gebruik van ingebouwde NF-variabelen (Laatste veld weergeven)
$ awk '{print $1,$NF}' employee.txt> Uitgang:
ajay 45000 sunil 25000 varun 50000 amit 47000 tarun 15000 deepak 23000 sunil 13000 satvik 80000>
In het bovenstaande voorbeeld staat $1 voor Naam en $NF voor Salaris. We kunnen het salaris verkrijgen met $NF , waarbij $NF het laatste veld vertegenwoordigt.
Een ander gebruik van ingebouwde NR-variabelen (Display Line From 3 tot 6)
$ awk 'NR==3, NR==6 {print NR,$0}' employee.txt> Uitgang:
3 varun manager sales 50000 4 amit manager account 47000 5 tarun peon sales 15000 6 deepak clerk sales 23000>
Meer voorbeelden
Voor het opgegeven tekstbestand:
$cat>geeksforgeeks.txt A B C Tarun A12 1 Man B6 2 Praveen M42 3>
1) Om het eerste item af te drukken samen met het rijnummer (NR), gescheiden door – van elke regel in geeksforgeeks.txt:
$ awk '{print NR '- ' $1 }' geeksforgeeks.txt> 1 - A 2 - Tarun 3 – Manav 4 - Praveen>
2) Om de tweede kolom/item van geeksforgeeks.txt terug te geven:
De vraag zou moeten zijn: - Om de tweede kolom/item van geeksforgeeks.txt terug te geven:
$ awk '{print $2}' geeksforgeeks.txt> B A12 B6 M42>
3) Om eventuele niet-lege regels af te drukken, indien aanwezig
$ awk 'NF <0' geeksforgeeks.txt>
hier moet NF niet kleiner zijn dan 0 en de gebruiker moet ook het regelnummer afdrukken:
juiste antwoord: awk ‘NF == 0 {print NR}’ geeksforgeeks.txt
OF
awk ‘NF <= 0 {print NR}’ geeksforgeeks.txt
0>
4) Om de lengte van de langste regel in het bestand te vinden:
$ awk '{ if (length($0)>max) max = lengte($0) } END { print max }' geeksforgeeks.txt> 13>
5) Om de regels in een bestand te tellen:
$ awk 'END { print NR }' geeksforgeeks.txt> 3>
6) Afdrukregels met meer dan 10 tekens:
$ awk 'length($0)>10' geeksforgeeks.txt>
Tarun A12 1 Praveen M42 3>
7) Om een tekenreeks in een specifieke kolom te zoeken/controleren:
$ awk '{ if($3 == 'B6') print $0;}' geeksforgeeks.txt> 8) Om de vierkanten van de eerste getallen van 1 tot n af te drukken, zeg je 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) Om de vierkanten van de eerste getallen van 1 tot n af te drukken, zeg je 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>