20 awk esimerkkiä

20 Awk Examples



Linux -käyttöjärjestelmässä on monia apuohjelmia työkalujen etsimiseen ja raportin luomiseen tekstidatasta tai tiedostosta. Käyttäjä voi helposti suorittaa monenlaisia ​​hakuja, korvauksia ja raporttien luontitehtäviä käyttämällä awk-, grep- ja sed -komentoja. awk ei ole vain käsky. Se on skriptikieli, jota voidaan käyttää sekä pääte- että awk -tiedostosta. Se tukee muuttujaa, ehdollista lauseketta, matriisia, silmukoita jne. Kuten muutkin skriptikielet. Se voi lukea minkä tahansa tiedoston sisällön rivi riviltä ja erottaa kentät tai sarakkeet tietyn rajaajan perusteella. Se tukee myös säännöllistä lauseketta tietyn merkkijonon etsimiseksi tekstisisällöstä tai tiedostosta ja suorittaa toimenpiteitä, jos osumaa löytyy. Kuinka voit käyttää awk -komentoa ja komentosarjaa, esitetään tässä opetusohjelmassa käyttämällä 20 hyödyllistä esimerkkiä.

Sisällys:

  1. awk printf kanssa
  2. awk jakaa valkoiselle avaruudelle
  3. awk vaihtaa erotinta
  4. awk, jossa on sarkaimella erotetut tiedot
  5. awk csv -tietojen kanssa
  6. awk regex
  7. awk kirjainkoko ei ole herkkä
  8. awk, jossa on muuttuja nf (kenttien määrä)
  9. awk gensub () -toiminto
  10. awk rand () -funktiolla
  11. awk käyttäjän määrittämä toiminto
  12. awk jos
  13. awk muuttujia
  14. awk -taulukot
  15. awk silmukka
  16. awk tulostaa ensimmäisen sarakkeen
  17. awk tulostaa viimeisen sarakkeen
  18. awk grepin kanssa
  19. awk bash -komentotiedoston kanssa
  20. awk sedin kanssa

Awk: n käyttäminen printf: n kanssa

printf () -toimintoa käytetään minkä tahansa tuloksen muotoiluun useimmissa ohjelmointikielissä. Tätä toimintoa voidaan käyttää yhdessä awk komento luoda erilaisia ​​muotoiltuja lähdöjä. awk -komentoa käytetään pääasiassa mihin tahansa tekstitiedostoon. Luo tekstitiedosto nimeltä työntekijä.txt alla olevan sisällön kanssa, jossa kentät on erotettu sarkaimella (' t').







työntekijä.txt



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

Seuraava awk -komento lukee tietoja työntekijä.txt tiedosto rivi riviltä ja tulosta ensimmäinen arkistoinnin jälkeen. Tässä, %10s n tarkoittaa, että tulostus on 10 merkkiä pitkä. Jos tulosteen arvo on alle 10 merkkiä, välilyönnit lisätään arvon eteen.



$ awk'{printf'%10s n', 1 $'työntekijä.txt

Lähtö:





Siirry sisältöön



awk jakaa valkoiselle avaruudelle

Tekstin jakamisen oletusarvoinen sanojen tai kenttien erotin on välilyönti. awk -komento voi ottaa tekstiarvon syötteeksi eri tavoin. Syötetty teksti välitetään heitti pois komento seuraavassa esimerkissä. Teksti, ' Tykkään ohjelmoinnista Jaetaan oletuserottimella, tilaa , ja kolmas sana tulostetaan tulostuksena.

$heitti pois 'Pidän ohjelmoinnista' | awk '{print $ 3}'

Lähtö:

Siirry sisältöön

awk vaihtaa erotinta

awk -komennolla voidaan muuttaa minkä tahansa tiedoston sisällön erotinta. Oletetaan, että sinulla on tekstitiedosto nimeltä phone.txt seuraavan sisällön kanssa, jossa ”:” on tiedoston sisällön kenttäerotin.

phone.txt

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

Suorita seuraava awk -komento erottimen vaihtamiseksi, ':' käyttäjältä '-' tiedoston sisältöön, phone.txt .

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

Lähtö:

Siirry sisältöön

awk, jossa on sarkaimella erotetut tiedot

awk-komennossa on monia sisäänrakennettuja muuttujia, joita käytetään tekstin lukemiseen eri tavoin. Kaksi heistä ovat FS ja OFS . FS on syöttökenttien erotin ja OFS on tulostuskenttien erotinmuuttujat. Näiden muuttujien käyttö on esitetty tässä osiossa. Luo välilehti erillinen tiedosto nimeltä input.txt seuraavan sisällön kanssa testataksesi niiden käyttöä FS ja OFS muuttujia.

Input.txt

Asiakaspuolen skriptikieli
Palvelinpuolen skriptikieli
Tietokantapalvelin
Verkkopalvelin

FS -muuttujan käyttäminen välilehdellä

Seuraava komento jakaa jokaisen rivin input.txt tiedosto välilehden perusteella (' t') ja tulosta jokaisen rivin ensimmäinen kenttä.

$awk '{print $ 1}' FS=' t'input.txt

Lähtö:

OFS -muuttujan käyttö välilehdellä

Seuraava awk -komento tulostaa 9th ja 5th kentät 'Ls -l' sarakkeen otsikon tulostamisen jälkeen komennon tulostus sarkainerottimella Nimi ja Koko . Tässä, OFS muuttujaa käytetään tuloksen muotoiluun välilehdellä.

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

Lähtö:

Siirry sisältöön

awk CSV -tietojen kanssa

Minkä tahansa CSV -tiedoston sisältö voidaan jäsentää useilla tavoilla käyttämällä awk -komentoa. Luo CSV -tiedosto nimeltä ' asiakas.csv 'Seuraavalla sisällöllä soveltaaksesi awk -komentoa.

customer.txt

Tunnus, nimi, sähköposti, puhelin
1, Sophia, [email protected], (862) 478-7263
2, Amelia, [email protected], (530) 764-8000
3, Emma, ​​[email protected], (542) 986-2390

Luetaan CSV -tiedoston yksittäistä kenttää

'-F' -vaihtoehtoa käytetään awk -komennolla, kun halutaan asettaa erotin tiedoston jokaisen rivin jakamiseen. Seuraava awk -komento tulostaa nimi kenttä asiakas.csv tiedosto.

$kissaasiakas.csv
$awk -F ',' '{print $ 2}'asiakas.csv

Lähtö:

Useiden kenttien lukeminen yhdistämällä muuta tekstiä

Seuraava komento tulostaa kolme kenttää asiakas.csv yhdistämällä otsikkoteksti, Nimi, sähköposti ja puhelin . Ensimmäinen rivi asiakas.csv tiedosto sisältää kunkin kentän otsikon. EI muuttuja sisältää tiedoston rivinumeron, kun awk -komento jäsentää tiedoston. Tässä esimerkissä NR muuttujaa käytetään jättämään tiedoston ensimmäinen rivi pois. Tulos näyttää 2toinen, 3rdja 4thkaikkien rivien kentät paitsi ensimmäinen rivi.

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

Lähtö:

CSV -tiedoston lukeminen awk -komentosarjan avulla

awk -skripti voidaan suorittaa suorittamalla awk -tiedosto. Tässä esimerkissä näytetään, kuinka voit luoda awk -tiedoston ja suorittaa tiedoston. Luo tiedosto nimeltä awkcsv.awk seuraavalla koodilla. ALKAA avainsanaa käytetään komentosarjassa ilmoittamaan awk -komennolle suorittaakseen komentosarjan ALKAA osa ennen muiden tehtävien suorittamista. Tässä kenttäerotin ( FS ) käytetään halkaisijaerottimen määrittämiseen ja 2toinenja 1stkentät tulostetaan printf () -toiminnossa käytetyn muodon mukaisesti.

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

Juosta awkcsv.awk tiedosto, jonka sisältö on asiakas.csv tiedosto seuraavalla komennolla.

$awk -fawkcsv.awk customer.csv

Lähtö:

Siirry sisältöön

awk regex

Säännöllinen lauseke on malli, jota käytetään tekstin minkä tahansa merkkijonon etsimiseen. Erilaisia ​​monimutkaisia ​​haku- ja korvaustehtäviä voidaan tehdä erittäin helposti käyttämällä säännöllistä lauseketta. Tässä osassa esitetään muutamia yksinkertaisia ​​säännöllisen lausekkeen käyttötapoja awk -komennolla.

Vastaava hahmoaseta

Seuraava komento vastaa sanaa Hölmö tai huijaus tai Viileä syöttöjonolla ja tulosta, jos sana löytyy. Tässä, Nukke ei täsmää eikä tulostu.

$printf 'Tyhmä nViileä nNukke nhöpö | awk '/[FbC] ool/'

Lähtö:

Haetaan merkkijonoa rivin alussa

'^' -symbolia käytetään säännöllisessä lausekkeessa haettaessa mitä tahansa mallia rivin alussa. ' Linux ' sanaa haetaan seuraavan esimerkin tekstirivin alussa. Tässä kaksi riviä alkaa tekstillä, 'Linux Ja nämä kaksi riviä näytetään tulostuksessa.

$heitti pois -Ja 'Linux on ilmainen nSe on avoimen lähdekoodin ohjelmisto nLinuxHint on
suosittu blogisivusto '
| awk '/^Linux/'

Lähtö:

Haetaan merkkijonoa rivin lopussa

'$' -symbolia käytetään säännöllisessä lausekkeessa etsimään mitä tahansa mallia tekstin jokaisen rivin lopussa. ' Käsikirjoitus ’Sanaa haetaan seuraavassa esimerkissä. Tässä kahdella rivillä on sana, Käsikirjoitus rivin lopussa.

$heitti pois -Ja 'PHP -skripti nJavaScript nVisuaalinen ohjelmointi ' | awk '/Käsikirjoitus $/'

Lähtö:

Haku jättämällä pois tietty merkistö

'^' symboli osoittaa tekstin alun, kun sitä käytetään minkä tahansa merkkijonokuvion edessä (' / ^… /') tai ennen mitä tahansa merkistön ilmoittamaa merkistöä ^ […] . Jos '^' -symbolia käytetään kolmannen hakasulkeen sisällä, [^…], sitten hakasulkeessa oleva määritetty merkistö jätetään pois haun yhteydessä. Seuraava komento etsii mitä tahansa sanaa, joka ei ala 'F' mutta päättyy ' ool ''. Viileä ja bool tulostetaan kuvion ja tekstitietojen mukaan.

$ printf 'Tyhmä nViileä nNukke nhöpö |awk' / [^ F] ool /'

Lähtö:

Siirry sisältöön

awk kirjainkoko ei ole herkkä

Oletuksena säännöllinen lauseke tekee kirjainkoolla merkitsevän haun, kun etsit mitä tahansa merkkijonon mallia. Kirjainkoon erottamaton haku voidaan tehdä awk -komennolla säännöllisellä lausekkeella. Seuraavassa esimerkissä laskea() -toimintoa käytetään etsimään kirjainkoolla merkitystä. Tässä syöttötekstin jokaisen rivin ensimmäinen sana muunnetaan pieniksi kirjaimilla käyttämällä laskea() toiminto ja vastaa säännöllistä lausekemallia. ylös () toimintoa voidaan käyttää myös tähän tarkoitukseen, tässä tapauksessa kuvio on määritettävä isoilla kirjaimilla. Seuraavassa esimerkissä määritelty teksti sisältää hakusanan, 'Verkko ”Kahdella rivillä, jotka tulostetaan tulostuksena.

$heitti pois -Ja 'Web-suunnittelu nverkkokehitys nPuitteet ' | awk 'laske ($ 0) ~ /^web /;'

Lähtö:

Siirry sisältöön

awk NF (kenttämäärä) -muuttujalla

NF on sisäänrakennettu awk-komennon muuttuja, jota käytetään laskemaan syöttökirjan jokaisen rivin kenttien kokonaismäärä. Luo mikä tahansa tekstitiedosto, jossa on useita rivejä ja useita sanoja. input.txt Tässä käytetään edellisessä esimerkissä luotua tiedostoa.

NF: n käyttäminen komentoriviltä

Tässä ensimmäistä komentoa käytetään sisällön näyttämiseen input.txt tiedostoa ja toista komentoa käytetään kenttien kokonaismäärän näyttämiseen tiedoston jokaisella rivillä käyttäen NF muuttuja.

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

Lähtö:

NF: n käyttö awk -tiedostossa

Luo awk -tiedosto nimeltä count.wak alla olevan käsikirjoituksen kanssa. Kun tämä komentosarja suoritetaan millä tahansa tekstidatalla, jokainen rivin sisältö, jossa on yhteensä kenttiä, tulostetaan tulostuksena.

count.wak

{tulosta $0}
{Tulosta'[Yhteensä kenttiä:'NF']'}

Suorita komentosarja seuraavalla komennolla.

$awk -fcount.awk input.txt

Lähtö:

Siirry sisältöön

awk gensub () -toiminto

getub () on korvausfunktio, jota käytetään merkkijonon etsimiseen tietyn erotin- tai säännöllisen lausekemallin perusteella. Tämä toiminto on määritelty kohdassa 'Kurkku' paketti, jota ei ole asennettu oletuksena. Tämän toiminnon syntaksi on annettu alla. Ensimmäinen parametri sisältää säännöllisen lausekemallin tai hakuerottimen, toinen parametri sisältää korvaavan tekstin, kolmas parametri osoittaa, miten haku tehdään ja viimeinen parametri sisältää tekstin, jossa tätä toimintoa käytetään.

Syntaksi:

gensub(regexp, korvaaminen, miten[, kohde])

Suorita seuraava komento asentaaksesi kurkku paketti käyttöön getub () toiminto awk -komennolla.

$ sudo apt-get install gawk

Luo tekstitiedosto nimeltä ' salesinfo.txt 'Seuraavan sisällön avulla tämän esimerkin harjoittamiseksi. Tässä kentät on erotettu välilehdellä.

salesinfo.txt

Minun 700 000
Sinun 800 000
Ke 750000
Kerää 200 000
Pe 430000
La 820000

Suorita seuraava komento lukeaksesi numerokentät salesinfo.txt tiedosto ja tulosta koko myyntimäärä. Tässä kolmas parametri 'G' osoittaa maailmanlaajuista hakua. Tämä tarkoittaa, että mallia etsitään tiedoston koko sisällöstä.

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

Lähtö:

Siirry sisältöön

awk rand () -funktiolla

rivi() -funktiota käytetään minkä tahansa satunnaisluvun muodostamiseen, joka on suurempi kuin 0 ja pienempi kuin 1. Joten se luo aina murtoluvun, joka on pienempi kuin 1. Seuraava komento luo murto -osan satunnaisluvun ja kertoa arvon 10: llä saadaksesi luvun enemmän kuin 1. Murtoluku, jossa on kaksi numeroa desimaalipilkun jälkeen, tulostetaan printf () -toiminnon käyttämiseksi. Jos suoritat seuraavan komennon useita kertoja, saat erilaisen tuloksen joka kerta.

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

Lähtö:

Siirry sisältöön

awk käyttäjän määrittämä toiminto

Kaikki edellisissä esimerkeissä käytetyt toiminnot ovat sisäänrakennettuja toimintoja. Mutta voit ilmoittaa käyttäjän määrittämän toiminnon awk-komentosarjassasi suorittamaan minkä tahansa tietyn tehtävän. Oletetaan, että haluat luoda mukautetun funktion suorakulmion alueen laskemiseksi. Voit tehdä tämän tehtävän luomalla tiedoston nimeltä ' alue. wak 'Seuraavalla käsikirjoituksella. Tässä esimerkissä käyttäjän määrittämä toiminto nimeltä alue () ilmoitetaan komentosarjassa, joka laskee alueen syöttöparametrien perusteella ja palauttaa alueen arvon. getline komentoa käytetään tässä syötteen vastaanottamiseen käyttäjältä.

alue. wak

# Laske alue
toimintoalueella(korkeus,leveys){
palatakorkeus*leveys
}

# Aloittaa suorituksen
ALKAA{
Tulosta'Syötä korkeuden arvo:'
getline h< '-'
Tulosta'Kirjoita leveyden arvo:'
getline w< '-'
Tulosta'Alue ='alueella(h,sisään)
}

Suorita komentosarja.

$awk -falue. wak

Lähtö:

Siirry sisältöön

awk jos esimerkki

awk tukee ehdollisia lausuntoja, kuten muutkin vakio -ohjelmointikielet. Tässä osassa esitetään kolmenlaisia ​​if -lauseita käyttämällä kolmea esimerkkiä. Luo tekstitiedosto nimeltä items.txt seuraavan sisällön kanssa.

items.txt

Kiintolevy Samsung 100 dollaria
Hiiri A4Tech
Tulostin HP 200 dollaria

Yksinkertaista jos esimerkki :

seuraava komento lukee items.txt tiedosto ja tarkista 3rd kentän arvo jokaisella rivillä. Jos arvo on tyhjä, se tulostaa virheilmoituksen rivinumerolla.

$awk '{if ($ 3 ==' ') print' Hintakenttä puuttuu riviltä 'NR}'items.txt

Lähtö:

jos-muu esimerkki:

Seuraava komento tulostaa tuotteen hinnan, jos 3rd-kenttä on rivillä, muuten se tulostaa virheilmoituksen.

$ awk'{if ($ 3 ==' ') print' Hinta -kenttä puuttuu '
muuten tulosta 'tuotteen hinta on' $ 3} '
kohteita.txt

Lähtö:

jos-muut-jos esimerkki:

Kun seuraava komento suoritetaan päätelaitteesta, se ottaa syötteen käyttäjältä. Syöttöarvoa verrataan jokaiseen if -ehtoon, kunnes ehto on tosi. Jos jokin ehto täyttyy, se tulostaa vastaavan arvosanan. Jos tuloarvo ei vastaa mitään ehtoa, tulostus epäonnistuu.

$awk 'BEGIN {print' Anna merkki: '
getline -merkki<'-'
jos (merkki> = 90) tulosta 'A+'
muuten jos (merkki> = 80) tulosta 'A'
muuten jos (merkki> = 70) tulosta 'B+'
muuten tulosta 'Epäonnistunut'} '

Lähtö:

Siirry sisältöön

awk muuttujia

Awk -muuttujan ilmoitus on samanlainen kuin shell -muuttujan ilmoitus. Muuttujan arvon lukemisessa on ero. $ -Merkkiä käytetään shell -muuttujan muuttujan nimen kanssa arvon lukemiseen. Mutta arvon '' $ '' käyttämistä awk -muuttujan kanssa ei tarvitse käyttää arvon lukemiseen.

Yksinkertaisen muuttujan käyttö:

Seuraava komento ilmoittaa muuttujan nimeltä 'Sivusto' ja merkkijonoarvo määritetään kyseiselle muuttujalle. Muuttujan arvo tulostetaan seuraavassa lauseessa.

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

Lähtö:

Muuttujan käyttäminen tietojen noutamiseen tiedostosta

Seuraava komento etsii sanaa 'Tulostin' tiedostossa items.txt . Jos jokin tiedoston rivi alkaa 'Tulostin 'Sitten se tallentaa arvon 1st , 2toinen ja 3rd kentät kolmeen muuttujaan. nimi ja hinta muuttujat tulostetaan.

$ awk'/ Tulostin/ {name = $ 1; brand = $ 2; price = $ 3; print' item name = 'name;
print 'item price =' price} '
kohteita.txt

Lähtö:

Siirry sisältöön

awk -taulukot

Sekä numeerisia että niihin liittyviä matriiseja voidaan käyttää awk: ssa. Matriisimuuttujan ilmoitus awk: ssa on sama kuin muilla ohjelmointikielillä. Joitakin matriisien käyttötapoja on esitetty tässä osassa.

Assosiatiivinen järjestelmä:

Taulukon indeksi on mikä tahansa assosiatiivisen taulukon merkkijono. Tässä esimerkissä kolmen elementin assosiatiivinen ryhmä ilmoitetaan ja tulostetaan.

$awk 'ALKAA {
books ['Web Design'] = 'Oppiminen HTML 5';
books ['Web Programming'] = 'PHP ja MySQL'
kirjat ['PHP Framework'] = 'Learning Laravel 5'
printf '%s n%s n%s n', kirjat ['Web -suunnittelu'], kirjat ['Web -ohjelmointi'],
kirjat ['PHP Framework']} '

Lähtö:

Numeerinen taulukko:

Kolmen elementin numeerinen taulukko ilmoitetaan ja tulostetaan erottamalla välilehti.

$ awk'ALKAA {
numero [0] = 80;
numero [1] = 55;
numero [2] = 76;

# tulostetaulukkoelementtiä
printf 'Taulukon arvot: %d t%d t%d n', numero [0], numero [1], numero [2]; } '

Lähtö:

Siirry sisältöön

awk silmukka

Awk tukee kolmen tyyppisiä silmukoita. Näiden silmukoiden käyttö on esitetty tässä käyttämällä kolmea esimerkkiä.

Silmukan ollessa:

kun seuraavassa komennossa käytetty silmukka iteroi 5 kertaa ja poistuu silmukasta taukolausetta varten.

$ awk 'ALKAA {n = 1; kun (n 5) tauko; tulosta n; n ++}} '

Lähtö:

Silmukka:

Seuraavassa awk -komennossa käytettävä silmukka laskee summan 1-10 ja tulostaa arvon.

$awk 'ALKAA {summa = 0; varten (n = 1; n<= 10; n++) sum=sum+n; print sum }'

Lähtö:

Do-while-silmukka:

seuraavan komennon to-while-silmukka tulostaa kaikki parilliset luvut 10: stä 5: een.

$awk 'ALKAA {laskuri = 10; tee {jos (laskuri%2 == 0) tulosta laskuri; laskuri-- }
samalla (laskuri> 5)} '

Lähtö:

Siirry sisältöön

awk tulostaa ensimmäisen sarakkeen

Minkä tahansa tiedoston ensimmäinen sarake voidaan tulostaa käyttämällä $ 1 -muuttujaa awk: ssa. Mutta jos ensimmäisen sarakkeen arvo sisältää useita sanoja, tulostetaan vain ensimmäisen sarakkeen ensimmäinen sana. Tietyn rajaajan avulla ensimmäinen sarake voidaan tulostaa oikein. Luo tekstitiedosto nimeltä student.txt seuraavan sisällön kanssa. Tässä ensimmäinen sarake sisältää kahden sanan tekstin.

Students.txt

Kaniz Fatema 30therä
Abir Hossain 35therä
Johannes Abraham 40therä

Suorita awk -komento ilman erotinta. Ensimmäisen sarakkeen ensimmäinen osa tulostetaan.

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

Suorita awk -komento seuraavalla erotimella. Ensimmäisen sarakkeen koko osa tulostetaan.

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

Lähtö:

Siirry sisältöön

awk tulostaa viimeisen sarakkeen

$ (NF) muuttujaa voidaan käyttää minkä tahansa tiedoston viimeisen sarakkeen tulostamiseen. Seuraavat awk -komennot tulostavat viimeisen osan ja koko osan viimeisestä sarakkeesta opiskelijat.txt tiedosto.

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

Lähtö:

Siirry sisältöön

awk grepin kanssa

grep on toinen hyödyllinen Linux -komento etsiä tiedoston sisältöä minkä tahansa säännöllisen lausekkeen perusteella. Seuraavassa esimerkissä näytetään, kuinka sekä awk- että grep -komentoja voidaan käyttää yhdessä. pito komentoa käytetään työntekijän tunnuksen tietojen etsimiseen, ' 1002 'Alkaen työntekijä.txt tiedosto. Grep -komennon tulos lähetetään awk: iin syöttötiedoina. 5% bonus lasketaan ja tulostetaan työntekijän tunnuksen palkan perusteella, ' 1002 ' awk -komennolla.

$kissatyöntekijä.txt
$pito '1002'työntekijä.txt| awk -F ' t' '{print $ 2' saa $ '($ 3*5)/100' bonuksen '}'

Lähtö:

Siirry sisältöön

awk BASH -tiedoston kanssa

Kuten muita Linux -komentoja, awk -komentoa voidaan käyttää myös BASH -komentosarjassa. Luo tekstitiedosto nimeltä customers.txt seuraavan sisällön kanssa. Tämän tiedoston jokainen rivi sisältää tietoja neljästä kentästä. Nämä ovat asiakkaan tunnus, nimi, osoite ja matkapuhelinnumero, jotka erotetaan toisistaan ’/ ''.

customers.txt

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

Luo bash -tiedosto nimeltä item_search.bash seuraavan käsikirjoituksen kanssa. Tämän skriptin mukaan tila -arvo otetaan käyttäjältä ja haetaan customers.txt tiedoston tekijä pito komento ja välitettiin awk -komennolle syötteeksi. Awk -komento lukee 2toinen ja 4th kunkin rivin kentät. Jos tuloarvo vastaa mitä tahansa tila -arvoa customers.txt tiedoston, se tulostaa asiakkaan nimi ja matkapuhelinnumero , muuten se tulostaa viestin Asiakkaita ei löytynyt .

item_search.bash

#!/bin/bash
heitti pois 'Kirjoita osavaltion nimi:'
lukeaosavaltio
Asiakkaat=``pito ''$ osavaltio''customers.txt| awk -F '/' '{print' Asiakkaan nimi: '$ 2,',
Matkapuhelinnumero: $ 4}
``
jos [ ''$ asiakkaat'' !='' ];sitten
heitti pois $ asiakkaat
muu
heitti pois 'Asiakkaita ei löytynyt'
olla

Suorita seuraavat komennot näyttääksesi lähdöt.

$kissacustomers.txt
$lyödäitem_search.bash

Lähtö:

Siirry sisältöön

awk sedin kanssa

Toinen hyödyllinen Linuxin hakutyökalu on sed . Tätä komentoa voidaan käyttää minkä tahansa tiedoston etsimiseen ja tekstin korvaamiseen. Seuraava esimerkki näyttää awk -komennon käytön sed komento. Täällä sed -komento etsii kaikkien työntekijöiden nimet ja alkaa ' J 'Ja siirtyy syötteeksi awk -komentoon. awk tulostaa työntekijän nimi ja ID alustamisen jälkeen.

$kissatyöntekijä.txt
$sed -n '/J/p'työntekijä.txt| awk -F ' t' '{printf'%s (%s) n ', $ 2, $ 1}'

Lähtö:

Siirry sisältöön

Johtopäätös:

Voit käyttää awk -komentoa luodaksesi erityyppisiä raportteja minkä tahansa taulukko- tai rajatun datan perusteella tietojen suodattamisen jälkeen. Toivottavasti voit oppia, kuinka awk -komento toimii, kun olet harjoitellut tässä opetusohjelmassa esitettyjä esimerkkejä.