20 primjera awka

20 Awk Examples



U operacijskom sustavu Linux postoje mnogi uslužni alati za pretraživanje i generiranje izvješća iz tekstualnih podataka ili datoteka. Korisnik može lako izvesti mnoge vrste pretraživanja, zamjene i izvješća o generiranju zadataka pomoću naredbi awk, grep i sed. awk nije samo naredba. To je skriptni jezik koji se može koristiti i iz terminalne i iz awk datoteke. Podržava varijablu, uvjetni izraz, niz, petlje itd. Poput drugih skriptnih jezika. Može čitati bilo koji sadržaj datoteke redak po redak i odvajati polja ili stupce na temelju određenog graničnika. Također podržava regularni izraz za pretraživanje određenog niza u tekstualnom sadržaju ili datoteci i poduzima radnje ako se pronađe bilo kakvo podudaranje. Kako možete koristiti naredbu i skriptu awk prikazano je u ovom vodiču pomoću 20 korisnih primjera.

Sadržaj:

  1. awk s printf
  2. awk za podjelu na bijelom prostoru
  3. awk za promjenu graničnika
  4. awk s podacima razdvojenim tabulatorima
  5. awk s csv podacima
  6. awk regex
  7. awk regiks neosjetljiv na velika i mala slova
  8. awk s varijablom nf (broj polja)
  9. awk funkcija gensub ()
  10. awk s funkcijom rand ()
  11. awk korisnički definirana funkcija
  12. awk ako
  13. awk varijable
  14. awk nizovi
  15. awk petlja
  16. awk za ispis prvog stupca
  17. awk za ispis posljednjeg stupca
  18. awk s grepom
  19. awk s datotekom bash skripte
  20. awk sa sed

Korištenje awk s printf

printf () funkcija se koristi za formatiranje bilo kojeg izlaza u većini programskih jezika. Ova se funkcija može koristiti s awk naredba za generiranje različitih vrsta formatiranih izlaza. naredba awk uglavnom se koristi za bilo koju tekstualnu datoteku. Napravite tekstualnu datoteku pod nazivom zaposlenik.txt sa dolje navedenim sadržajem gdje su polja odvojena tabulatorom (' t').







zaposlenik.txt



1001 Ivan sena 40000
1002 Jafar Iqbal 60000
1003 Meher Nigar 30000
1004 Jonny Liver 70000

Sljedeća naredba awk čita podatke iz zaposlenik.txt datoteku redak po redak i ispišite prvu datoteku nakon formatiranja. Ovdje, %10s n znači da će ispis imati 10 znakova. Ako je vrijednost izlaza manja od 10 znakova, razmaci će se dodati ispred vrijednosti.



$ awk'{printf'%10s n', $ 1}'zaposlenik.txt

Izlaz:





Idite na Sadržaj



awk za podjelu na bijelom prostoru

Zadani separator riječi ili polja za razdvajanje bilo kojeg teksta je razmak. naredba awk može uzeti vrijednost teksta kao unos na različite načine. Ulazni tekst se prenosi s izbaciti naredbu u sljedećem primjeru. Tekst, ‘ Volim programiranje ’Podijelit će se prema zadanim separatorima, prostor , a treća će se riječ ispisati kao izlaz.

$izbaciti 'Volim programiranje' | awk '{print $ 3}'

Izlaz:

Idite na Sadržaj

awk za promjenu graničnika

Naredba awk može se koristiti za promjenu graničnika za bilo koji sadržaj datoteke. Pretpostavimo da imate tekstualnu datoteku pod nazivom phone.txt sa sljedećim sadržajem gdje se ‘:’ koristi kao separator polja sadržaja datoteke.

phone.txt

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

Pokrenite sljedeću naredbu awk za promjenu graničnika, ':' po ‘-’ na sadržaj datoteke, phone.txt .

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

Izlaz:

Idite na Sadržaj

awk s podacima razdvojenim tabulatorima

Naredba awk ima mnogo ugrađenih varijabli koje se koriste za čitanje teksta na različite načine. Dvije od njih su FS i OFS . FS je separator ulaznog polja i OFS je varijable separatora izlaznih polja. Upotreba ovih varijabli prikazana je u ovom odjeljku. Stvoriti tab nazvana odvojena datoteka input.txt sa sljedećim sadržajem za provjeru upotrebe FS i OFS varijable.

Ulaz.txt

Skriptni jezik na strani klijenta
Skriptni jezik na strani poslužitelja
Poslužitelj baze podataka
Web poslužitelj

Korištenje varijable FS s tab

Sljedeća naredba podijelit će svaki redak input.txt datoteku na temelju kartice (' t') i ispišite prvo polje svakog retka.

$awk '{ispiši $ 1}' FS=' t'input.txt

Izlaz:

Korištenje varijable OFS s tab

Sljedeća naredba awk ispisat će 9th i 5th polja od 'Ls -l' naredbeni izlaz s razdjelnikom tabulatora nakon ispisa naslova stupca Ime i Veličina . Ovdje, OFS Varijabla se koristi za oblikovanje izlaza pomoću kartice.

$ls -
$ls - | awk -v OFS=' t' 'BEGIN {printf'%s t%s n ',' Name ',' Size '} {print $ 9, $ 5}'

Izlaz:

Idite na Sadržaj

awk s CSV podacima

Sadržaj bilo koje CSV datoteke može se raščlaniti na više načina pomoću naredbe awk. Izradite CSV datoteku pod nazivom ' kupac.csv ’Sa sljedećim sadržajem za primjenu naredbe awk.

customer.txt

ID, ime, e -mail, telefon
1, Sophia, [zaštićeno e-poštom], (862) 478-7263
2, Amelia, [zaštićena e-pošta], (530) 764-8000
3, Emma, ​​[zaštićena e-pošta], (542) 986-2390

Čitanje jednog polja CSV datoteke

'-F' opcija se koristi s naredbom awk za postavljanje graničnika za razdvajanje svakog retka datoteke. Sljedeća naredba awk ispisat će Ime polje od kupac.csv datoteka.

$mačkakupac.csv
$awk -F ',' '{print $ 2}'kupac.csv

Izlaz:

Čitanje više polja kombiniranjem s drugim tekstom

Sljedeća naredba ispisat će tri polja kupac.csv kombiniranjem naslova, Ime, e -mail i telefon . Prvi redak kupac.csv datoteka sadrži naslov svakog polja. NE varijabla sadrži broj retka datoteke kada naredba awk raščlanjuje datoteku. U ovom primjeru, NR varijabla se koristi za izostavljanje prvog retka datoteke. Na izlazu će se prikazati 2nd, 3rdi 4thpolja svih redaka osim prvog retka.

$awk -F ',' 'NR> 1 {print' Name: '$ 2', Email: '$ 3', Phone: '$ 4}'kupac.csv

Izlaz:

Čitanje CSV datoteke pomoću awk skripte

awk skripta se može izvesti pokretanjem awk datoteke. U ovom primjeru prikazano je kako možete stvoriti awk datoteku i pokrenuti je. Napravite datoteku pod nazivom awkcsv.awk sa sljedećim kodom. POČETI keyword se koristi u skripti za informiranje naredbe awk za izvršavanje skripte datoteke POČETI najprije dio prije izvršavanja drugih zadataka. Ovdje razdvajač polja ( FS ) koristi se za definiranje graničnika razdvajanja i 2ndi 1svpolja će se ispisati u skladu s formatom koji se koristi u funkciji printf ().

awkcsv.awk
POČETI{FS= ','} { printf '% 5s (% s) n',$2,$1}

Trčanje awkcsv.awk datoteka sa sadržajem kupac.csv datoteku sljedećom naredbom.

$awk -fawkcsv.awk customer.csv

Izlaz:

Idite na Sadržaj

awk regex

Regularni izraz je uzorak koji se koristi za pretraživanje bilo kojeg niza u tekstu. Različite vrste kompliciranih zadataka pretraživanja i zamjene mogu se obaviti vrlo jednostavno pomoću regularnog izraza. U ovom su odjeljku prikazane neke jednostavne uporabe regularnog izraza s naredbom awk.

Odgovarajući likpostavljen

Sljedeća naredba će odgovarati riječi Budala ili bool ili Kul s ulaznim nizom i ispišite ako se riječ nađe. Ovdje, Lutka neće se podudarati i neće ispisivati.

$printf 'Budala nKul nLutka nbool ' | awk '/[FbC] ool/'

Izlaz:

Traženje niza na početku retka

‘^’ simbol se koristi u regularnom izrazu za pretraživanje bilo kojeg uzorka na početku retka. ' Linux ' riječ će se pretraživati ​​na početku svakog retka teksta u sljedećem primjeru. Ovdje dva retka počinju tekstom, ‘Linux ’I ta dva retka bit će prikazana u ispisu.

$izbaciti -I 'Linux je besplatan za korištenje nTo je softver otvorenog koda nLinuxHint je
popularno web mjesto za blog '
| awk '/^Linux/'

Izlaz:

Traženje niza na kraju retka

'$' simbol koristi se u regularnom izrazu za pretraživanje bilo kojeg uzorka na kraju svakog retka teksta. ' Skripta ’Riječ se traži u sljedećem primjeru. Ovdje dva retka sadrže riječ, Skripta na kraju retka.

$izbaciti -I 'PHP skripta nJavaScript nVizualno programiranje ' | awk '/Skripta $/'

Izlaz:

Pretraživanje izostavljanjem određenog skupa znakova

‘^’ simbol označava početak teksta kada se koristi ispred bilo kojeg uzorka niza (‘ / ^… /’) ili prije bilo kojeg skupa znakova koji je proglasio ^ […] . Ako je ‘^’ simbol se koristi unutar treće zagrade, [^…] tada će definirani skup znakova unutar zagrada biti izostavljen u vrijeme pretraživanja. Sljedeća naredba pretražit će svaku riječ koja ne počinje s 'F' ali završava sa ' ool '. Kul i bool ispisat će se prema uzorku i tekstualnim podacima.

$ printf 'Budala nKul nLutka nbool ' |awk' / [^ F] ool /'

Izlaz:

Idite na Sadržaj

awk regiks neosjetljiv na velika i mala slova

Prema zadanim postavkama, regularni izraz ne traži velika i mala slova pri pretraživanju bilo kojeg uzorka u nizu. Pretraživanje bez razlikovanja velikih i malih slova može se izvršiti naredbom awk s regularnim izrazom. U sljedećem primjeru, spustiti() funkcija se koristi za pretraživanje bez razlikovanja velikih i malih slova. Ovdje će se prva riječ svakog retka ulaznog teksta pretvoriti u mala slova pomoću spustiti() funkcioniraju i podudaraju se s uzorkom regularnog izraza. tuper () Funkcija se također može koristiti u tu svrhu, u ovom slučaju uzorak mora biti definiran velikim slovom. Tekst definiran u sljedećem primjeru sadrži riječ za pretraživanje, 'Mreža ’U dva retka koji će se ispisati kao izlaz.

$izbaciti -I 'Web dizajn nweb razvoj nOkvir' | awk 'tolower ($ 0) ~ /^web /;'

Izlaz:

Idite na Sadržaj

awk s varijablom NF (broj polja)

NF je ugrađena varijabla naredbe awk koja se koristi za brojanje ukupnog broja polja u svakom retku ulaznog teksta. Napravite bilo koju tekstualnu datoteku s više redaka i više riječi. input.txt ovdje se koristi datoteka koja je stvorena u prethodnom primjeru.

Korištenje NF -a iz naredbenog retka

Ovdje se prva naredba koristi za prikaz sadržaja datoteke input.txt file i druga naredba koristi se za prikaz ukupnog broja polja u svakom retku datoteke pomoću NF promjenjiva.

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

Izlaz:

Korištenje NF -a u awk datoteci

Napravite awk datoteku pod nazivom brojati.awk sa dolje navedenim scenarijem. Kada se ova skripta izvrši s bilo kojim tekstualnim podacima, tada će se svaki sadržaj retka s ukupnim poljima ispisati kao izlaz.

brojati.awk

{ispisati $0}
{ispisati'[Ukupno polja:'NF']'}

Pokrenite skriptu sljedećom naredbom.

$awk -fcount.awk input.txt

Izlaz:

Idite na Sadržaj

awk funkcija gensub ()

getsub () je funkcija zamjene koja se koristi za pretraživanje niza na temelju određenog razdjelnika ili uzorka regularnog izraza. Ova je funkcija definirana u 'budala' paket koji nije zadano instaliran. Sintaksa ove funkcije navedena je u nastavku. Prvi parametar sadrži uzorak regularnog izraza ili graničnik pretraživanja, drugi parametar sadrži zamjenski tekst, treći parametar pokazuje kako će se pretraživanje izvršiti, a posljednji parametar sadrži tekst u kojem će se ova funkcija primijeniti.

Sintaksa:

gensub(regexp, zamjena, kako[, meta])

Pokrenite sljedeću naredbu za instalaciju budala paket za korištenje getsub () funkciju s naredbom awk.

$ sudo apt-get install gawk

Izradite tekstualnu datoteku pod nazivom ' salesinfo.txt ’Sa sljedećim sadržajem za vježbanje ovog primjera. Ovdje su polja odvojena karticom.

salesinfo.txt

Mojih 700000
Vaših 800000
Srijeda 750000
Sakupite 200000
Pet 430000
Sub 820000

Pokrenite sljedeću naredbu za čitanje numeričkih polja datoteke salesinfo.txt arhivirajte i ispišite ukupan iznos prodaje. Ovdje treći parametar, 'G' označava globalno pretraživanje. To znači da će se uzorak pretraživati ​​u cijelom sadržaju datoteke.

$awk '{x = gensub (' t ',' ',' G ', 2 USD); printf x '+'} END {ispis 0} 'salesinfo.txt| prije Krista -

Izlaz:

Idite na Sadržaj

awk s funkcijom rand ()

red() funkcija koristi se za generiranje bilo kojeg slučajnog broja većeg od 0 i manje od 1. Dakle, uvijek će generirati razlomačni broj manji od 1. Sljedeća naredba će generirati razlomačni slučajni broj i pomnožiti vrijednost s 10 kako bi se dobio broj veći od 1. Za primjenu funkcije printf () bit će ispisan razlomačni broj s dvije znamenke iza decimalne točke. Ako sljedeću naredbu pokrenete više puta, svaki put ćete dobiti drugačiji izlaz.

$awk 'BEGIN {printf' Broj je =%. 2f n ', rand ()*10}'

Izlaz:

Idite na Sadržaj

awk korisnički definirana funkcija

Sve funkcije koje se koriste u prethodnim primjerima su ugrađene funkcije. Ali možete deklarirati korisnički definiranu funkciju u svojoj awk skripti za izvršavanje bilo kojeg određenog zadatka. Pretpostavimo da želite stvoriti prilagođenu funkciju za izračunavanje površine pravokutnika. Da biste izvršili ovaj zadatak, stvorite datoteku pod nazivom ' područje.awk ’Sa sljedećom skriptom. U ovom primjeru, korisnički definirana funkcija pod nazivom područje () je deklarirano u skripti koja izračunava područje na temelju ulaznih parametara i vraća vrijednost područja. getline naredba se ovdje koristi za preuzimanje unosa od korisnika.

područje.awk

# Izračunajte površinu
funkcijapodručju(visina,širina){
povratakvisina*širina
}

# Pokreće izvršavanje
POČETI{
ispisati'Unesite vrijednost visine:'
getline h< '-'
ispisati'Unesite vrijednost širine:'
getline w< '-'
ispisati'Područje ='području(h,u)
}

Pokrenite skriptu.

$awk -fpodručje.awk

Izlaz:

Idite na Sadržaj

awk ako primjer

awk podržava uvjetne izraze poput drugih standardnih programskih jezika. Tri vrste if naredbi prikazane su u ovom odjeljku pomoću tri primjera. Napravite tekstualnu datoteku pod nazivom items.txt sa sljedećim sadržajem.

items.txt

HDD Samsung 100 dolara
Miš A4Tech
Pisač HP 200 USD

Jednostavan ako primjer :

sljedeća naredba pročitat će sadržaj items.txt datoteku i provjerite 3rd vrijednost polja u svakom retku. Ako je vrijednost prazna, ispisat će se poruka o pogrešci s brojem retka.

$awk '{if ($ 3 ==' ') print' Polje cijene nedostaje u retku 'NR}'items.txt

Izlaz:

primjer if-else:

Sljedeća naredba ispisuje cijenu stavke ako je 3rdpolje postoji u retku, u protivnom će se ispisati poruka o pogrešci.

$ awk'{if ($ 3 ==' ') print 'Polje cijene nedostaje'
else print 'cijena stavke je' 3 USD '
stavke.txt

Izlaz:

primjer if-else-if:

Kada se sljedeća naredba izvrši s terminala, tada će uzeti unos od korisnika. Ulazna vrijednost uspoređivat će se sa svakim if uvjetom sve dok uvjet ne bude istinit. Ako bilo koji uvjet postane ispunjen, ispisat će odgovarajuću ocjenu. Ako se ulazna vrijednost ne podudara s bilo kojim uvjetom, ispis neće uspjeti.

$awk 'BEGIN {print' Unesite oznaku: '
oznaka getline<'-'
if (oznaka> = 90) ispišite 'A+'
inače if (oznaka> = 80) ispišite 'A'
inače if (oznaka> = 70) ispišite 'B+'
else ispisati 'Fail'} '

Izlaz:

Idite na Sadržaj

awk varijable

Deklaracija varijable awk slična je deklaraciji varijable ljuske. Postoji razlika u čitanju vrijednosti varijable. Simbol ‘$’ koristi se s imenom varijable za varijablu ljuske za čitanje vrijednosti. No, nema potrebe koristiti '$' s varijablom awk za čitanje vrijednosti.

Koristeći jednostavnu varijablu:

Sljedeća naredba deklarirat će varijablu named 'Web mjesto' i toj se varijabli dodjeljuje vrijednost niza. Vrijednost varijable ispisana je u sljedećoj naredbi.

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

Izlaz:

Korištenje varijable za dohvaćanje podataka iz datoteke

Sljedeća naredba pretražit će riječ ‘Pisač’ u datoteci items.txt . Ako bilo koji redak datoteke počinje s ‘Pisač ’Tada će pohraniti vrijednost 1sv , 2nd i 3rd polja u tri varijable. Ime i cijena ispisat će se varijable.

$ awk'/ Printer/ {name = $ 1; brand = 2 $; price = 3 $; print' item name = 'name;
ispisati 'item price =' price} '
stavke.txt

Izlaz:

Idite na Sadržaj

awk nizovi

I numerički i pridruženi nizovi mogu se koristiti u awk -u. Deklaracija varijable niza u awku ista je s drugim programskim jezicima. U ovom su odjeljku prikazane neke uporabe nizova.

Asocijativni niz:

Indeks niza bit će bilo koji niz za asocijativni niz. U ovom primjeru deklarira se i ispisuje asocijativni niz od tri elementa.

$awk 'POČINI {
books ['Web Design'] = 'Učenje HTML 5';
books ['Web Programming'] = 'PHP i MySQL'
books ['PHP Framework'] = 'Učenje Laravela 5'
printf '%s n%s n%s n', knjige ['Web dizajn'], knjige ['Web programiranje'],
knjige ['PHP Framework']} '

Izlaz:

Numerički niz:

Numerički niz od tri elementa deklarira se i ispisuje odvajanjem tabulatora.

$ awk'POČINI {
broj [0] = 80;
broj [1] = 55;
broj [2] = 76;

# ispisnih elemenata polja
printf 'Vrijednosti niza: %d t%d t%d n', broj [0], broj [1], broj [2]; } '

Izlaz:

Idite na Sadržaj

awk petlja

Awk podržava tri vrste petlji. Upotreba ovih petlji ovdje je prikazana pomoću tri primjera.

Dok petlja:

while petlja koja se koristi u sljedećoj naredbi ponovit će se 5 puta i izaći iz petlje radi naredbe break.

$ awk 'POČNITE {n = 1; while (n 5) prekid; ispis n; n ++}} '

Izlaz:

Za petlju:

For petlja koja se koristi u sljedećoj naredbi awk izračunat će zbroj od 1 do 10 i ispisati vrijednost.

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

Izlaz:

Do-while petlja:

do-while petlja sljedeće naredbe ispisat će sve parne brojeve od 10 do 5.

$awk 'BEGIN {counter = 10; do {if (counter%2 == 0) ispis brojača; brojač-- }
while (brojač> 5)} '

Izlaz:

Idite na Sadržaj

awk za ispis prvog stupca

Prvi stupac bilo koje datoteke može se ispisati pomoću varijable $ 1 u awk. No ako vrijednost prvog stupca sadrži više riječi, ispisuje se samo prva riječ prvog stupca. Pomoću određenog razdjelnika prvi stupac može se ispravno ispisati. Napravite tekstualnu datoteku pod nazivom studenti.txt sa sljedećim sadržajem. Ovdje prvi stupac sadrži tekst dvije riječi.

Učenici.txt

Kaniz Fatema 30thserija
Abir Hossain 35thserija
Ivan Abraham 40thserija

Pokrenite naredbu awk bez ikakvog graničnika. Ispisat će se prvi dio prvog stupca.

$awk '{ispiši $ 1}'studenti.txt

Pokrenite naredbu awk sa sljedećim graničnikom. Ispisat će se cijeli dio prve kolone.

$awk -F '\ s \ s' '{ispiši $ 1}'studenti.txt

Izlaz:

Idite na Sadržaj

awk za ispis posljednjeg stupca

USD (NF) varijabla se može koristiti za ispis posljednjeg stupca bilo koje datoteke. Sljedeće naredbe awk ispisat će zadnji dio i cijeli dio posljednjeg stupca od studenti.txt datoteka.

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

Izlaz:

Idite na Sadržaj

awk s grepom

grep je još jedna korisna naredba Linuxa za pretraživanje sadržaja u datoteci na temelju bilo kojeg regularnog izraza. Kako se naredbe awk i grep mogu koristiti zajedno prikazano je u sljedećem primjeru. zahvat naredba se koristi za pretraživanje informacija o ID -u zaposlenika, ' 1002 ’Od zaposlenik.txt datoteka. Izlaz grep naredbe bit će poslan na awk kao ulazni podatak. Bonus od 5% računat će se i ispisati na temelju plaće identifikacijskog broja zaposlenika, ' 1002 ' naredbom awk.

$mačkazaposlenik.txt
$zahvat '1002'zaposlenik.txt| awk -F ' t' '{print $ 2' će dobiti $ '($ 3*5)/100' bonus '}'

Izlaz:

Idite na Sadržaj

awk s BASH datotekom

Kao i ostale naredbe za Linux, naredba awk također se može koristiti u BASH skripti. Napravite tekstualnu datoteku pod nazivom customers.txt sa sljedećim sadržajem. Svaki redak ove datoteke sadrži podatke o četiri polja. To su korisnički ID, ime, adresa i broj mobitela koji su odvojeni ‘/ '.

customers.txt

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

Napravite bash datoteku pod nazivom item_search.bash sa sljedećom skriptom. Prema ovoj skripti, vrijednost stanja bit će preuzeta od korisnika i pretražena the customers.txt datoteku od zahvat naredbu i proslijeđen naredbi awk kao ulaz. Awk naredba će se čitati 2nd i 4th polja svakog retka. Ako se ulazna vrijednost podudara s bilo kojom vrijednošću stanja od customers.txt datoteku, tada će ispisati korisnikovu datoteku Ime i broj mobitela , u protivnom će ispisati poruku Nije pronađen nijedan kupac .

item_search.bash

#!/bin/bash
izbaciti 'Unesite naziv države:'
čitatidržava
kupcima=``zahvat '$ stanje'customers.txt| awk -F '/' '{print' Korisničko ime: '$ 2,',
Broj mobilnog telefona: '$ 4}'
``
ako [ '$ kupaca' !='' ];zatim
izbaciti $ kupaca
drugo
izbaciti 'Nije pronađen nijedan kupac'
biti

Pokrenite sljedeće naredbe za prikaz izlaza.

$mačkacustomers.txt
$bashitem_search.bash

Izlaz:

Idite na Sadržaj

awk sa sed

Još jedan koristan alat za pretraživanje Linuxa je sed . Ova naredba može se koristiti za pretraživanje i zamjenu teksta bilo koje datoteke. Sljedeći primjer prikazuje upotrebu naredbe awk sa sed naredba. Ovdje će naredba sed pretraživati ​​sva imena zaposlenika koji počinju s ‘ J ’I prelazi u naredbu awk kao ulaz. awk će ispisati zaposlenika Ime i iskaznica nakon formatiranja.

$mačkazaposlenik.txt
$sed -n '/J/p'zaposlenik.txt| awk -F ' t' '{printf'%s (%s) n ', $ 2, $ 1}'

Izlaz:

Idite na Sadržaj

Zaključak:

Naredbom awk možete koristiti za stvaranje različitih vrsta izvješća na temelju bilo kojih tabličnih ili razgraničenih podataka nakon pravilnog filtriranja podataka. Nadam se da ćete moći naučiti kako funkcionira naredba awk nakon vježbanja primjera prikazanih u ovom vodiču.