20 awk voorbeelden

20 Awk Examples



Er bestaan ​​veel hulpprogramma's in het Linux-besturingssysteem om een ​​rapport te zoeken en te genereren op basis van tekstgegevens of bestanden. De gebruiker kan gemakkelijk vele soorten zoek-, vervangings- en rapportgenererende taken uitvoeren met behulp van awk-, grep- en sed-commando's. awk is niet zomaar een commando. Het is een scripttaal die zowel vanuit terminal als awk-bestand kan worden gebruikt. Het ondersteunt de variabele, voorwaardelijke instructie, array, loops enz. net als andere scripttalen. Het kan de inhoud van elk bestand regel voor regel lezen en de velden of kolommen scheiden op basis van een specifiek scheidingsteken. Het ondersteunt ook reguliere expressies voor het zoeken naar bepaalde tekenreeksen in de tekstinhoud of het bestand en onderneemt acties als er een overeenkomst wordt gevonden. Hoe u het awk-commando en -script kunt gebruiken, wordt in deze zelfstudie getoond aan de hand van 20 handige voorbeelden.

Inhoud:

  1. awk met printf
  2. awk om te splitsen op witruimte
  3. awk om het scheidingsteken te wijzigen
  4. awk met door tabs gescheiden gegevens
  5. awk met csv-gegevens
  6. awk regex
  7. awk hoofdletterongevoelige regex
  8. awk met nf (aantal velden) variabele
  9. awk gensub () functie
  10. awk met rand() functie
  11. awk door de gebruiker gedefinieerde functie
  12. awk als
  13. awk variabelen
  14. awk-arrays
  15. awk loop
  16. awk om de eerste kolom af te drukken
  17. awk om de laatste kolom af te drukken
  18. awk met grep
  19. awk met het bash-scriptbestand
  20. awk met sed

awk gebruiken met printf

printf() functie wordt gebruikt om elke uitvoer in de meeste programmeertalen te formatteren. Deze functie kan worden gebruikt met: awk commando om verschillende soorten geformatteerde uitvoer te genereren. awk-opdracht die voornamelijk wordt gebruikt voor elk tekstbestand. Maak een tekstbestand met de naam werknemer.txt met de onderstaande inhoud waarbij velden worden gescheiden door tab (‘ ’).







werknemer.txt



1001 John sena 40000
1002 Jafar Iqbal 60000
1003 Meher Nigar 30000
1004 Jonny Lever 70000

Het volgende awk-commando leest gegevens uit: werknemer.txt bestand regel voor regel en druk het eerste bestand af na het formatteren. Hier, %10s betekent dat de uitvoer 10 tekens lang zal zijn. Als de waarde van de uitvoer minder is dan 10 tekens, worden de spaties vooraan de waarde toegevoegd.



$ awk'{ printf '%10sN', $ 1}'medewerker.tekst

Uitgang:





Ga naar inhoud



awk om te splitsen op witruimte

Het standaardscheidingsteken voor woorden of velden voor het splitsen van tekst is witruimte. awk-opdracht kan op verschillende manieren tekstwaarde als invoer aannemen. De invoertekst wordt doorgegeven van gooide uit commando in het volgende voorbeeld. De tekst, ' Ik hou van programmeren ' wordt standaard gesplitst als scheidingsteken, ruimte , en het derde woord wordt afgedrukt als uitvoer.

$gooide uit 'Ik hou van programmeren' | awk '{ afdrukken $3 }'

Uitgang:

Ga naar inhoud

awk om het scheidingsteken te wijzigen

awk-opdracht kan worden gebruikt om het scheidingsteken voor elke bestandsinhoud te wijzigen. Stel dat je een tekstbestand hebt met de naam telefoon.txt met de volgende inhoud waarbij ':' wordt gebruikt als veldscheidingsteken van de bestandsinhoud.

telefoon.txt

+123: 334: 889: 778
+880: 1855: 456: 907
+9: 7777: 38644: 808

Voer de volgende awk-opdracht uit om het scheidingsteken te wijzigen, ‘:’ door '-' naar de inhoud van het bestand, telefoon.txt .

$ kat telefoon.txt
$ awk '$1=$1' FS=':' OFS='-' phone.txt

Uitgang:

Ga naar inhoud

awk met door tabs gescheiden gegevens

awk-opdracht heeft veel ingebouwde variabelen die worden gebruikt om de tekst op verschillende manieren te lezen. Twee van hen zijn FS en OFS . FS is het invoerveld scheidingsteken en OFS is uitvoerveld scheidingsteken variabelen. Het gebruik van deze variabelen wordt in deze sectie getoond. Maak een tabblad gescheiden bestand met de naam invoer.txt met de volgende inhoud om het gebruik van te testen FS en OFS variabelen.

Invoer.txt

Scripttaal aan de clientzijde
Server-side scripttaal
Database server
Web Server

FS-variabele gebruiken met tab

De volgende opdracht splitst elke regel van invoer.txt bestand op basis van het tabblad (‘ ’) en druk het eerste veld van elke regel af.

$awk '{ print $1 }' FS=' 'invoer.txt

Uitgang:

OFS-variabele gebruiken met tab

Het volgende awk-commando zal de . afdrukken 9e en 5e velden van 'Ls-l' opdrachtuitvoer met tabscheidingsteken na het afdrukken van de kolomtitel Naam en Maat . Hier, OFS variabele wordt gebruikt om de uitvoer op te maken met een tabblad.

$ls -de
$ls -de | awk -v OFS=' ' 'BEGIN { printf '%s %s ', 'Naam', 'Maat'} {print $9,$5}'

Uitgang:

Ga naar inhoud

awk met CSV-gegevens

De inhoud van elk CSV-bestand kan op meerdere manieren worden geparseerd met behulp van de awk-opdracht. Maak een CSV-bestand met de naam ' klant.csv ' met de volgende inhoud om het awk-commando toe te passen.

klant.txt

ID, naam, e-mail, telefoon
1, Sophia, [e-mail beveiligd] , (862) 478-7263
2, Amelia, [e-mail beveiligd] , (530) 764-8000
3, Emma, ​​[e-mail beveiligd] , (542) 986-2390

Een enkel veld van het CSV-bestand lezen

'-F' optie wordt gebruikt met de opdracht awk om het scheidingsteken in te stellen voor het splitsen van elke regel van het bestand. Het volgende awk-commando zal de . afdrukken naam gebied van de klant.csv het dossier.

$katklant.csv
$awk -F ',' '{print $2}'klant.csv

Uitgang:

Meerdere velden lezen door te combineren met andere tekst

De volgende opdracht drukt drie velden af ​​van: klant.csv door titeltekst te combineren, Naam, e-mail en telefoon . De eerste regel van de klant.csv bestand bevat de titel van elk veld. NEE variabele bevat het regelnummer van het bestand wanneer de opdracht awk het bestand parseert. In dit voorbeeld, de NR variabele wordt gebruikt om de eerste regel van het bestand weg te laten. De uitvoer toont de 2nd, 3rden 4evelden van alle regels behalve de eerste regel.

$awk -F ',' 'NR>1 {print 'Naam:' $2 ', E-mail:' $3 ', Telefoon:' $4}'klant.csv

Uitgang:

CSV-bestand lezen met een awk-script

awk-script kan worden uitgevoerd door awk-bestand uit te voeren. Hoe u een awk-bestand kunt maken en het bestand kunt uitvoeren, wordt in dit voorbeeld getoond. Maak een bestand met de naam awkcsv.awk met de volgende code. BEGINNEN trefwoord wordt in het script gebruikt om het awk-commando te informeren om het script van de . uit te voeren BEGINNEN eerst deel voordat u andere taken uitvoert. Hier, veldscheidingsteken ( FS ) wordt gebruikt om scheidingsteken en 2 . te definiërennden 1NSvelden worden afgedrukt volgens het formaat dat wordt gebruikt in de functie printf().

awkcsv.awk
BEGINNEN{FS= ','} { printf '% 5s (% s)N',$2,$1}

Loop awkcsv.awk bestand met de inhoud van de klant.csv bestand met de volgende opdracht.

$awk -Fawkcsv.awk klant.csv

Uitgang:

Ga naar inhoud

awk regex

De reguliere expressie is een patroon dat wordt gebruikt om elke tekenreeks in een tekst te zoeken. Verschillende soorten gecompliceerde zoek- en vervangingstaken kunnen heel gemakkelijk worden gedaan door de reguliere expressie te gebruiken. Enkele eenvoudige toepassingen van de reguliere expressie met het awk-commando worden in deze sectie getoond.

Overeenkomend karakterset

Het volgende commando komt overeen met het woord Dwaas of dwaas of Koel met de invoerreeks en print als het woord wordt gevonden. Hier, Pop zal niet overeenkomen en niet afdrukken.

$printf 'GekNKoelNPopNboe' | awk '/[FbC]ool/'

Uitgang:

String zoeken aan het begin van de regel

'^' symbool wordt in de reguliere expressie gebruikt om een ​​patroon aan het begin van de regel te zoeken. ‘ Linux’ woord zal worden gezocht aan het begin van elke regel van de tekst in het volgende voorbeeld. Hier beginnen twee regels met de tekst, 'Linux' ' en die twee regels worden weergegeven in de uitvoer.

$gooide uit -En 'Linux is gratis te gebruiken'NHet is een open-source softwareNLinuxHint is:
een populaire blogsite'
| awk '/^Linux/'

Uitgang:

String aan het einde van de regel zoeken

'$' symbool wordt in de reguliere expressie gebruikt om een ​​patroon aan het einde van elke regel van de tekst te zoeken. ‘ Script ’ wordt gezocht in het volgende voorbeeld. Hier bevatten twee regels het woord, Script aan het einde van de lijn.

$gooide uit -En 'PHP-script'NJavaScriptNVisueel programmeren' | awk '/Script$/'

Uitgang:

Zoeken door een bepaalde tekenset weg te laten

'^' symbool geeft het begin van de tekst aan wanneer deze voor een tekenreekspatroon wordt gebruikt (‘/ ^… /’) of voor een tekenset gedeclareerd door ^ […] . Als de '^' symbool wordt gebruikt binnen het derde haakje, [^…], dan wordt de gedefinieerde tekenset binnen het haakje weggelaten op het moment van zoeken. De volgende opdracht zoekt naar elk woord dat niet begint met 'F' maar eindigend met ' ool '. Koel en bool wordt afgedrukt volgens het patroon en de tekstgegevens.

$ printf 'GekNKoelNPopNboe' |awk'/ [^ F] ool /'

Uitgang:

Ga naar inhoud

awk hoofdletterongevoelige regex

Standaard zoekt reguliere expressie hoofdlettergevoelig bij het zoeken naar een patroon in de tekenreeks. Hoofdletterongevoelig zoeken kan worden gedaan met het awk-commando met de reguliere expressie. In het volgende voorbeeld, verlagen() functie wordt gebruikt om hoofdletterongevoelig te zoeken. Hier wordt het eerste woord van elke regel van de invoertekst geconverteerd naar kleine letters met behulp van verlagen() functioneren en overeenkomen met het reguliere expressiepatroon. topper() functie kan ook voor dit doel worden gebruikt, in dit geval moet het patroon worden gedefinieerd met een hoofdletter. De tekst die in het volgende voorbeeld is gedefinieerd, bevat het zoekwoord, 'Web ’ in twee regels die als uitvoer worden afgedrukt.

$gooide uit -En 'Webdesign'NwebontwikkelingNKader' | awk 'tolower($0) ~ /^web/;'

Uitgang:

Ga naar inhoud

awk met NF (aantal velden) variabele

NF is een ingebouwde variabele van de awk-opdracht die wordt gebruikt om het totale aantal velden in elke regel van de invoertekst te tellen. Maak een tekstbestand met meerdere regels en meerdere woorden. de invoer.txt hier wordt het bestand gebruikt dat in het vorige voorbeeld is gemaakt.

NF gebruiken vanaf de opdrachtregel

Hier wordt het eerste commando gebruikt om de inhoud van . weer te geven invoer.txt bestand en het tweede commando wordt gebruikt om het totale aantal velden in elke regel van het bestand te tonen met behulp van NF variabel.

$ cat input.txt
$ awk '{print NF}' input.txt

Uitgang:

NF gebruiken in awk-bestand

Maak een awk-bestand met de naam count.awk met het onderstaande script. Wanneer dit script wordt uitgevoerd met tekstgegevens, wordt elke regelinhoud met totale velden afgedrukt als uitvoer.

count.awk

{print $0}
{afdrukken'[Totaal aantal velden:'NF']'}

Voer het script uit met de volgende opdracht.

$awk -Fcount.awk input.txt

Uitgang:

Ga naar inhoud

awk gensub () functie

getsub() is een vervangingsfunctie die wordt gebruikt om strings te zoeken op basis van een bepaald scheidingsteken of patroon voor reguliere expressies. Deze functie is gedefinieerd in 'gaap' pakket dat niet standaard is geïnstalleerd. De syntaxis voor deze functie wordt hieronder gegeven. De eerste parameter bevat het reguliere expressiepatroon of zoekscheidingsteken, de tweede parameter bevat de vervangende tekst, de derde parameter geeft aan hoe de zoekopdracht zal worden uitgevoerd en de laatste parameter bevat de tekst waarin deze functie zal worden toegepast.

Syntaxis:

geslachtsdeel(regexp, vervanging, hoe?[, doelwit])

Voer de volgende opdracht uit om te installeren: gawk pakket voor gebruik: getsub() functie met awk commando.

$ sudo apt-get install gawk

Maak een tekstbestand met de naam ' verkoopinfo.txt ' met de volgende inhoud om dit voorbeeld te oefenen. Hier worden de velden gescheiden door een tab.

verkoopinfo.txt

Mijn 700000
Uw 800000
wo 750000
Verzamel 200000
vr 430000
za 820000

Voer de volgende opdracht uit om de numerieke velden van de . te lezen verkoopinfo.txt bestand en druk het totaal van alle verkoopbedragen af. Hier geeft de derde parameter, 'G', de globale zoekopdracht aan. Dat betekent dat het patroon in de volledige inhoud van het bestand wordt doorzocht.

$awk '{ x=gensub(' ','','G',$2); printf x '+' } END{ print 0 }'verkoopinfo.txt| bc -de

Uitgang:

Ga naar inhoud

awk met rand() functie

rij() functie wordt gebruikt om elk willekeurig getal groter dan 0 en kleiner dan 1 te genereren. Het genereert dus altijd een fractioneel getal kleiner dan 1. De volgende opdracht genereert een fractioneel willekeurig getal en vermenigvuldigt de waarde met 10 om een ​​getal te krijgen dat groter is dan 1. Een fractioneel getal met twee cijfers achter de komma wordt afgedrukt voor het toepassen van de printf()-functie. Als u de volgende opdracht meerdere keren uitvoert, krijgt u elke keer een andere uitvoer.

$awk 'BEGIN {printf 'Getal is =%.2f ' ​​, rand()*10}'

Uitgang:

Ga naar inhoud

awk door de gebruiker gedefinieerde functie

Alle functies die in de vorige voorbeelden zijn gebruikt, zijn ingebouwde functies. Maar u kunt een door de gebruiker gedefinieerde functie in uw awk-script declareren om een ​​bepaalde taak uit te voeren. Stel dat u een aangepaste functie wilt maken om de oppervlakte van een rechthoek te berekenen. Om deze taak uit te voeren, maakt u een bestand met de naam ' area.awk ’ met het volgende script. In dit voorbeeld is een door de gebruiker gedefinieerde functie met de naam Oppervlakte() wordt gedeclareerd in het script dat de oppervlakte berekent op basis van de invoerparameters en de oppervlaktewaarde retourneert. getline commando wordt hier gebruikt om input van de gebruiker te krijgen.

area.awk

# Bereken oppervlakte
functieOppervlakte(hoogte,breedte){
opbrengsthoogte*breedte
}

# Start uitvoering
BEGINNEN{
afdrukken'Vul de waarde van de hoogte in:'
getline h< '-'
afdrukken'Vul de waarde van de breedte in:'
getline met< '-'
afdrukken'Gebied = 'Oppervlakte(H,in)
}

Voer het script uit.

$awk -Farea.awk

Uitgang:

Ga naar inhoud

awk if voorbeeld

awk ondersteunt voorwaardelijke instructies zoals andere standaard programmeertalen. In deze sectie worden drie typen if-statements weergegeven aan de hand van drie voorbeelden. Maak een tekstbestand met de naam items.txt met de volgende inhoud.

items.txt

HDD Samsung $ 100
Muis A4Tech
Printer HP $ 200

Eenvoudig als voorbeeld :

het volgende commando zal de inhoud van de . lezen items.txt bestand en controleer de 3rd veldwaarde in elke regel. Als de waarde leeg is, wordt er een foutbericht afgedrukt met het regelnummer.

$awk '{ if ($3 == '') print 'Prijsveld ontbreekt in regel ' NR }'items.txt

Uitgang:

als-anders voorbeeld:

De volgende opdracht drukt de artikelprijs af als de 3rdveld bestaat in de regel, anders wordt er een foutbericht afgedrukt.

$ awk'{ if ($3 == '') print 'Prijsveld ontbreekt'
anders print 'artikelprijs is ' $3 }'
artikelen.tekst

Uitgang:

if-els-if voorbeeld:

Wanneer de volgende opdracht vanaf de terminal wordt uitgevoerd, zal deze invoer van de gebruiker nodig hebben. De invoerwaarde wordt vergeleken met elke if-voorwaarde totdat de voorwaarde waar is. Als een voorwaarde waar wordt, wordt het bijbehorende cijfer afgedrukt. Als de invoerwaarde niet overeenkomt met een voorwaarde, wordt het afdrukken mislukt.

$awk 'BEGIN { print 'Vul het teken in:'
getline-markering<'-'
als (teken >= 90) print 'A+'
anders if (teken >= 80) print 'A'
anders als (teken >= 70) print 'B+'
anders print 'Mislukt' }'

Uitgang:

Ga naar inhoud

awk variabelen

De declaratie van de variabele awk is vergelijkbaar met de declaratie van de shell-variabele. Er is een verschil in het lezen van de waarde van de variabele. '$'-symbool wordt gebruikt met de variabelenaam voor de shell-variabele om de waarde te lezen. Maar het is niet nodig om '$' te gebruiken met de variabele awk om de waarde te lezen.

Eenvoudige variabele gebruiken:

De volgende opdracht declareert een variabele met de naam 'site' en aan die variabele wordt een tekenreekswaarde toegewezen. De waarde van de variabele wordt afgedrukt in de volgende instructie.

$awk 'BEGIN{ site='LinuxHint.com'; print site}'

Uitgang:

Een variabele gebruiken om gegevens uit een bestand op te halen

De volgende opdracht zoekt het woord 'Printer' in het bestand items.txt . Als een regel van het bestand begint met 'Printer ’ dan zal het de waarde van . opslaan 1NS , 2nd en 3rd velden in drie variabelen. naam en prijs variabelen worden afgedrukt.

$ awk'/Printer/ { name=$1;brand=$2;price=$3;print 'item artikelprijs=' prijs }'artikelen.tekst

Uitgang:

Ga naar inhoud

awk-arrays

Zowel numerieke als bijbehorende arrays kunnen in awk worden gebruikt. De declaratie van arrayvariabelen in awk is hetzelfde voor andere programmeertalen. In deze sectie worden enkele toepassingen van arrays getoond.

Associatieve matrix:

De index van de array is een willekeurige tekenreeks voor de associatieve array. In dit voorbeeld wordt een associatieve array van drie elementen gedeclareerd en afgedrukt.

$awk 'BEGINNEN {
books['Web Design'] = 'Leren HTML 5';
books['Web Programming'] = 'PHP en MySQL'
books['PHP Framework']='Laravel 5 leren'
printf '%s %s %s ', books['Web Design'],books['Web Programming'],
boeken['PHP Framework'] }'

Uitgang:

Numerieke matrix:

Een numerieke reeks van drie elementen wordt gedeclareerd en afgedrukt door tab te scheiden.

$ awk'BEGINNEN {
getal [0] = 80;
getal [1] = 55;
getal [2] = 76;

# print array-elementen
printf 'Array-waarden: %d %NS %NSN', nummer[0],nummer[1],nummer[2]; }'

Uitgang:

Ga naar inhoud

awk loop

Drie soorten lussen worden ondersteund door awk. Het gebruik van deze lussen wordt hier getoond aan de hand van drie voorbeelden.

Herhalingslus:

while-lus die in de volgende opdracht wordt gebruikt, wordt 5 keer herhaald en verlaat de instructie lus voor break.

$ awk 'BEGIN { n = 1; terwijl (n 5) breken; afdrukken n; n++ } }'

Uitgang:

For loop:

For-lus die in de volgende awk-opdracht wordt gebruikt, berekent de som van 1 tot 10 en drukt de waarde af.

$awk 'BEGIN { som=0; voor (n = 1; n<= 10; n++) sum=sum+n; print sum }'

Uitgang:

Do-while-lus:

een do-while-lus van het volgende commando zal alle even getallen van 10 tot 5 afdrukken.

$awk 'BEGIN {teller = 10; do { if (counter%2 ==0) print teller; balie-- }
while (teller > 5) }'

Uitgang:

Ga naar inhoud

awk om de eerste kolom af te drukken

De eerste kolom van elk bestand kan worden afgedrukt door de variabele $1 in awk te gebruiken. Maar als de waarde van de eerste kolom meerdere woorden bevat, wordt alleen het eerste woord van de eerste kolom afgedrukt. Door een specifiek scheidingsteken te gebruiken, kan de eerste kolom goed worden afgedrukt. Maak een tekstbestand met de naam studenten.txt met de volgende inhoud. Hier bevat de eerste kolom de tekst van twee woorden.

Studenten.txt

Kaniz Fatema 30epartij
Abir Hossain 35epartij
Johannes Abraham 40epartij

Voer het awk-commando uit zonder enig scheidingsteken. Het eerste deel van de eerste kolom wordt afgedrukt.

$awk '{print $1}'studenten.txt

Voer de opdracht awk uit met het volgende scheidingsteken. Het volledige deel van de eerste kolom wordt afgedrukt.

$awk -F '\ s \ s' '{print $1}'studenten.txt

Uitgang:

Ga naar inhoud

awk om de laatste kolom af te drukken

$(NF) variabele kan worden gebruikt om de laatste kolom van een bestand af te drukken. De volgende awk-opdrachten zullen het laatste deel en het volledige deel van de laatste kolom van . afdrukken de studenten.txt het dossier.

$awk '{print $(NF)}'studenten.txt
$awk -F '\ s \ s' '{print $(NF)}'studenten.txt

Uitgang:

Ga naar inhoud

awk met grep

grep is een ander handig commando van Linux om inhoud in een bestand te doorzoeken op basis van een reguliere expressie. In het volgende voorbeeld wordt getoond hoe de opdrachten awk en grep samen kunnen worden gebruikt. greep commando wordt gebruikt om informatie van de werknemer-ID te zoeken, ' 1002 ' van de werknemer.txt het dossier. De uitvoer van het grep-commando wordt als invoergegevens naar awk gestuurd. 5% bonus wordt geteld en afgedrukt op basis van het salaris van de werknemer-ID, ' 1002' op awk-commando.

$katwerknemer.txt
$greep '1002'werknemer.txt| awk -F ' ' '{ print $2 ' krijgt $' ($3*5)/100 ' bonus'}'

Uitgang:

Ga naar inhoud

awk met BASH-bestand

Net als andere Linux-opdrachten kan de awk-opdracht ook in een BASH-script worden gebruikt. Maak een tekstbestand met de naam klanten.txt met de volgende inhoud. Elke regel van dit bestand bevat informatie over vier velden. Dit zijn klant-ID, naam, adres en mobiel nummer, gescheiden door: ‘/ '.

klanten.txt

AL4934 / Charles M Brunner / 4838 Beeghley Street, Huntsville, Alabama / 256-671-7942
CA5455 / Virginia S Mota / 930 Bassel Street, VALLECITO, Californië / 415-679-5908
IL4855 / Ann A Neale / 1932 Patterson Fork Road, Chicago, Illinois / 773-550-5107

Maak een bash-bestand met de naam item_search.bash met het volgende script. Volgens dit script wordt de statuswaarde van de gebruiker overgenomen en doorzocht in de klanten.txt bestand door greep commando en doorgegeven aan het awk-commando als invoer. Awk-opdracht zal lezen 2nd en 4e velden van elke regel. Als de invoerwaarde overeenkomt met een statuswaarde van klanten.txt bestand, dan zal het die van de klant afdrukken naam en mobiel nummer , anders wordt het bericht afgedrukt Geen klant gevonden .

item_search.bash

#!/bin/bash
gooide uit 'Voer de staatsnaam in:'
lezenstaat
klanten=``greep '$staat'klanten.txt| awk -F '/' '{print 'Klantnaam:' $2, ',
Mobiel nr:' $4}'
``
indien [ '$klanten' !='' ];dan
gooide uit $klanten
anders
gooide uit 'Geen klant gevonden'
zijn

Voer de volgende opdrachten uit om de uitvoer weer te geven.

$katklanten.txt
$bashitem_search.bash

Uitgang:

Ga naar inhoud

awk met sed

Een ander handig zoekhulpmiddel van Linux is: sed . Deze opdracht kan worden gebruikt voor zowel het zoeken als het vervangen van tekst van elk bestand. Het volgende voorbeeld toont het gebruik van het awk-commando met sed opdracht. Hier zoekt het sed-commando alle namen van werknemers die beginnen met ' J ' en gaat door naar het awk-commando als invoer. awk zal werknemer afdrukken naam en ID kaart na het formatteren.

$katwerknemer.txt
$sed -N '/J/p'werknemer.txt| awk -F ' ' '{ printf '%s(%s) ', $2, $1 }'

Uitgang:

Ga naar inhoud

Conclusie:

U kunt de opdracht awk gebruiken om verschillende soorten rapporten te maken op basis van tabellarische of gescheiden gegevens nadat u de gegevens op de juiste manier hebt gefilterd. Hoop, je zult in staat zijn om te leren hoe het awk-commando werkt na het oefenen van de voorbeelden die in deze tutorial worden getoond.