Monet apuohjelma työkaluja on olemassa Linux-käyttöjärjestelmän etsiä ja luoda raportin tekstin tiedot tai tiedoston. Käyttäjä voi helposti suorittaa monenlaisia haku, korvaaminen ja raportoida tuottaa tehtäviä käyttämällä awk, grep ja sed komentoja. awk ei ole vain käsky. Se on skriptauskieli, jota voidaan käyttää sekä päätteestä että awk-tiedostosta. Se tukee muuttujan, ehdollinen lausuma, array, silmukoita jne. kuten muutkin kirjoituskielet., Se voi lukea minkä tahansa tiedoston sisältölinjan riveittäin ja erottaa kentät tai sarakkeet tietyn rajaajan perusteella. Se tukee myös säännöllistä ilmaisua tietyn merkkijonon etsimiseen tekstisisällöstä tai tiedostosta ja ryhtyy toimiin, jos jokin täsmää. Miten voit käyttää awk-komentoa ja komentosarjaa näytetään tässä opetusohjelmassa käyttämällä 20 hyödyllistä esimerkkiä.,a
Käyttämällä awk printf
printf () – funktiota käytetään muodossa tahansa lähtö useimmissa ohjelmointikieliä., Tätä funktiota voidaan käyttää awk-komennolla erilaisten alustettujen ulostulojen tuottamiseen. 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 erotetaan välilehdellä (”\t”).
työntekijä.txt
1002 Jafar Iqbal 60000
1003 Meher Nigar 30000
1004 Jonny Maksan 70000
seuraava awk-komento lukee tietoja työntekijä.txt tiedosto rivi riviltä ja tulostaa ensimmäinen arkistoitu jälkeen muotoilu. Täällä, ”%10s\n” tarkoittaa, että lähtö on 10 merkkiä pitkä., Jos lähtöarvo on alle 10 merkkiä, välilyönnit lisätään arvon etuosaan.
tuloksena on:
Siirry Sisältöä
awk-voit jakaa valkoinen tila
oletuksena sana tai kentän erotin halkaisu tahansa teksti on valkoista tilaa. awk-komento voi ottaa tekstiarvon syötteenä eri tavoin. Syöttöteksti siirtyy echo-komennosta seuraavassa esimerkissä., Teksti, ””minä, kuten ohjelmointi’ jaetaan oletuksena erotin, tilaa, ja kolmas sana on painettu tuotokseksi.
Lähtö:
Siirry Sisältöä
awk muuttaa erotin
awk-komentoa voidaan käyttää muuttamaan erotin tahansa tiedoston sisältöä. Oletetaan, sinulla on tekstitiedosto nimeltä puhelin.txt, jossa on seuraava sisältö, jossa”: ”käytetään tiedostosisällön kenttäerottimena.
puhelin.,txt
+880:1855:456:907
+9:7777:38644:808
Suorita seuraava awk-komento muuttaa erotin, ’:’, jonka ’-’ sisällön-tiedoston, puhelin.txt.
$ awk ’$1=$1’ FS=”:” OFS=”-” puhelin.txt
tuloksena on:
Siirry Sisältöä
awk kanssa sarkainerotellussa tiedot
awk-komento on monia sisäänrakennettuja muuttujia, jotka ovat tottuneet lukemaan tekstiä eri tavoin. Kaksi niistä on FS ja OFS., FS on syöttökenttäerotin ja OFS on lähtökenttäerottimen muuttujia. Näiden muuttujien käyttötavat on esitetty tässä jaksossa. Luo välilehti erotettu tiedosto nimeltään input.txt, jossa on seuraava sisältö FS-ja OFS-muuttujien käytön testaamiseksi.
Tulo.txt
Server-side scripting kieli,
Tietokanta-Palvelin
Web-Palvelin
Käyttäen FS muuttujan välilehti
seuraava komento jakaa kunkin line input.txt-tiedosto perustuu välilehteen (”\t”) ja tulostaa kunkin rivin ensimmäisen kentän.,
tuloksena on:
Käyttämällä OFS-muuttujan välilehti
seuraava awk-komento tulostaa 9. ja 5. kentät ’ls-l’ command output-tab erotin tulostuksen jälkeen sarakkeen nimi ”Nimi” ja ”Koko”. Tässä, OFS muuttuja käytetään formaatti lähdön välilehden.,
$ ls-l | awk -v OFS=’\t’ ’BEGIN { printf ”%s\t%s\n”, ”Nimi”, ”Koko”} {print $9,$5}’
Lähtö:
Siirry Sisältöä
awk CSV-tiedot
sisältöä tahansa CSV-tiedosto voidaan jäsentää useilla eri tavoilla käyttämällä awk-komento. Luo CSV – tiedosto nimeltä ’ asiakas.csv’, jossa on seuraava sisältö awk-komennon soveltamiseksi.
asiakas.txt
CSV-tiedoston yksittäisen kentän lukemista
’ – F’ optiota käytetään awk-komennon kanssa määrittelemään erotin tiedoston jokaisen rivin jakamista varten., Seuraava awk-komento tulostaa asiakkaan nimikentän.csv-tiedosto.
$ awk-F”, ”’{tulosta $2} ’ asiakas.csv
Output:
Lukeminen useita kenttiä yhdistämällä muiden tekstiä
seuraava komento tulostaa kolmella asiakkaalla.csv yhdistämällä otsikkoteksti, nimi, sähköposti ja puhelin. Ensimmäinen linja asiakkaan.csv-tiedosto sisältää kunkin kentän nimen. Nr-muuttuja sisältää tiedoston rivinumeron, kun awk-komento jäsentää tiedoston., Tässä esimerkissä nr-muuttujaa käytetään tiedoston ensimmäisen rivin jättämiseen pois. Lähtö näyttää 2., 3.ja 4. kentät kaikki linjat paitsi ensimmäinen rivi.
tuloksena on:
Lukeminen CSV-tiedosto käyttämällä awk script
awk-skripti voidaan suorittaa ajamalla awk-tiedoston avaamiseen. Miten voit luoda awk-tiedoston ja ajaa tiedostoa näkyy tässä esimerkissä. Luo tiedosto nimeltä awkcsv.awk seuraavalla koodilla., BEGIN-avainsanaa käytetään komentosarjassa awk-komennon ilmoittamiseen, jotta KÄYNNISTYSOSAN skripti suoritetaan ensin ennen muiden tehtävien suorittamista. Täällä, kentän erotin (FS) käytetään määrittelemään halkaisu erotin ja 2. ja 1. kentät tulostetaan mukaan muotoa käytetään printf () – funktio.
BEGIN {FS = ”,”} {printf ”%5s(%s)\n”, $2,$1}
Suorita awkcsv.awk-tiedosto, jossa on Asiakkaan sisältö.csv-tiedosto seuraavalla komennolla.
tuloksena on:
Siirry Sisältöä
awk regex
säännöllinen lauseke on malli, jota käytetään etsiä minkä tahansa merkkijonon tekstistä. Erityyppiset monimutkaiset haku-ja korvaustehtävät voidaan tehdä hyvin helposti käyttämällä säännöllistä lauseketta. Tässä osassa esitetään joitakin yksinkertaisia käyttötapoja tavanomaiseen lausekkeeseen awk-komennolla.
seuraava komento vastaa sanan Tyhmä tai bool tai Viileä tulo merkkijono ja tulostaa, jos sana loisi., Tässä, Doll ei täsmää eikä tulosta.
Lähtö:
Haku merkkijonon alussa rivi
’^’ – symboli on käyttää säännöllinen lauseke etsi tahansa malli alkaen linja. ’Linux’ sana on etsinyt alussa jokaisen rivin tekstin seuraavassa esimerkissä. Tässä kaksi riviä alkaa tekstillä, ’Linux’ ja nuo kaksi riviä näytetään ulostulossa.,
suosittu blogi site” | awk ’/^Linux/’
Lähtö:
Haku merkkijonon lopussa rivi
’$’ – symboli on käyttää säännöllinen lauseke etsi kaikki kuvion lopussa jokaisen rivin tekstiä. ”Script” – sanaa etsitään seuraavasta esimerkistä. Tässä kaksi riviä sisältää sanan, käsikirjoituksen rivin lopussa.,
Lähtö:
Haetaan jättämällä erityisesti merkistö
’^’ – symboli ilmaisee, alkaa tekstiä, kun sitä käytetään edessä tahansa merkkijonolauseke (’/^…/’) tai ennen tahansa merkki asettaa ilmoittamat ^. Jos kolmannen kiinnikkeen sisällä käytetään ” ^ ” – symbolia, kiinnikkeen sisällä oleva määritelty merkki jätetään pois hakuhetkellä., Seuraava komento etsii minkä tahansa sanan, joka ei ala sanalla ” F ”vaan päättyy sanalla ”ool”. Cool ja bool tulostetaan kaavan ja tekstitiedon mukaan.
tuloksena on:
Siirry Sisältöä
awk kirjainkoko regex
oletuksena, säännöllinen lauseke ei kirjainkoko, kun etsivät tahansa malli merkkijono. Case tunteeton haku voidaan tehdä awk-komennolla säännöllisellä lausekkeella., Seuraavassa esimerkissä tolower () – funktiota käytetään asiahakujen tekemiseen. Täällä, ensimmäinen sana jokainen rivi syöttää tekstiä voidaan muuntaa pienet kirjaimet käyttämällä tolower () – funktio ja ottelu säännöllinen lauseke kuvio. toupper () – funktiota voidaan käyttää myös tähän tarkoitukseen, tässä tapauksessa kuvio on määriteltävä koko isolla kirjaimella. Seuraavassa esimerkissä määritelty teksti sisältää hakusanan ” web ” kahtena rivinä, jotka tulostetaan tulosteena.,
Lähtö:
Siirry Sisältöä
awk kanssa NF (useita kenttiä) muuttuja
NF on sisäänrakennettu muuttuja awk-komento, jota käytetään laskea kokonaismäärä kentät kunkin line input-tekstiä. Luo tekstitiedosto, jossa on useita rivejä ja useita sanoja. tulo.txt-tiedostoa käytetään tässä, joka on luotu edellisessä esimerkissä.,
komentorivin NF avulla
tässä käytetään ensimmäistä komentoa syötteen sisällön näyttämiseksi.txt-tiedoston ja toisen komennon avulla näytetään kenttien kokonaismäärä tiedoston jokaisella rivillä NF-muuttujan avulla.
$ awk ’{print NF} ’ input.txt
tuloksena on:
Käyttämällä NF vuonna awk-tiedosto
Luo awk-tiedosto nimeltä count.awk alla olevan käsikirjoituksen kanssa. Kun tämä kirjoitus tulee suorittaa minkä tahansa tekstin tiedot sitten jokaisen rivin sisällön kanssa yhteensä kentät tulostetaan tuotokseksi.
count.,awk –
{print ””}
Suorita skripti, jonka seuraava komento.
tuloksena on:
Siirry Sisältöä
awk gensub () – funktio
getsub() on korvaaminen toiminto, jota käytetään etsiä merkkijono, joka perustuu erityisesti erotin tai säännöllinen lauseke kuvio. Tämä toiminto on määritelty gawk-paketissa, jota ei ole asennettu oletusarvoisesti. Tämän funktion syntaksi on esitetty alla., Ensimmäinen parametri sisältää säännöllinen lauseke kuvio tai etsimällä erotin, Toinen parametri sisältää korvaava teksti, kolmas parametri kertoo, kuinka haku tapahtuu ja viimeinen parametri on teksti, jossa tämä toiminto otetaan käyttöön.
Syntax:
Suorita seuraava komento asentaa gawk paketin avulla getsub () – funktion kanssa awk-komento.
Luo tekstitiedosto nimeltä ’salesinfo.,txt ’ seuraavan sisällön harjoitella tätä esimerkkiä. Tässä kentät erotetaan välilehdellä.
salesinfo.txt
Ti 800000
Ke 750000
Thu 200000
Fri 430000
Sat 820000
Suorita seuraava komento lukea numeeriset kentät salesinfo.txt-tiedosto ja tulosta koko myyntimäärä. Tässä kolmas parametri, ”G”, osoittaa maailmanlaajuisen haun. Tämä tarkoittaa, että kuvio etsitään koko sisällön tiedoston.,
tuloksena on:
Siirry Sisältöä
awk, jossa rand() funktio
rand () – funktiota käytetään tuottamaan mitä tahansa satunnainen numero suurempi kuin 0 ja pienempi kuin 1. Niin, se tuottaa aina murto-osa määrä alle 1. Seuraava komento tuottaa murto satunnainen määrä ja moninkertaistaa arvon 10, jotta saada enemmän kuin 1., Murtoluku, jossa on kaksi numeroa desimaalipisteen jälkeen, painetaan printf () – funktion soveltamista varten. Jos suoritat seuraavan komennon useita kertoja, saat eri tuotoksen joka kerta.
tuloksena on:
Siirry Sisältöä
awk-käyttäjän määrittämä toiminto
Kaikki toiminnot, joita käytetään edellisessä esimerkkejä ovat sisäänrakennettuja toimintoja. Mutta voit julistaa käyttäjän määrittämän toiminnon awk-skriptissäsi tekemään mitä tahansa tiettyä tehtävää., Oletetaan, haluat luoda mukautetun funktion laskea alueen suorakulmion. Voit tehdä tämän tehtävän, luoda tiedoston nimeltä ’ alue.seuraavan käsikirjoituksen kanssa. Tässä esimerkissä käyttäjän määrittelemä funktio area() ilmoitetaan skriptissä, joka laskee alueen syöttöparametrien perusteella ja palauttaa alueen arvon. getline-komentoa käytetään tässä käyttäjän syötön ottamiseen.
alue.awk
Suorita käsikirjoitus.
tuloksena on:
Siirry Sisältöä
awk, jos esimerkki
awk tukee ehtolauseet kuin muut standardin ohjelmointikieliä. Tässä jaksossa esitetään kolmenlaisia if-lausumia käyttäen kolmea esimerkkiä. Luo tekstitiedosto nimeltä kohteita.txt seuraavalla sisällöllä.
kohteet.txt
Hiiri A4Tech
Tulostimen HP: $200
Yksinkertainen, jos esimerkiksi:
hän seuraava komento lukea sisältöä kohteita.txt tiedosto ja tarkista 3rd kentän arvo kunkin rivin., Jos arvo on tyhjä, se tulostaa virheilmoituksen rivinumerolla.
tuloksena on:
if-else esimerkki:
seuraava komento tulostaa kohteen hinta, jos 3. kentässä on line, muuten, se tulostaa virheilmoituksen.
muuta tulostaa ”item hinta on” $3 }’ kohteita.,txt
tuloksena on:
if-else-if-esimerkki:
Kun seuraava komento tulee suorittaa terminaalista niin se vie käyttäjän syötettä. Syöttöarvoa verrataan kuhunkin if-tilaan, kunnes ehto on totta. Jos jokin ehto tulee totta, se tulostaa vastaavan arvosanan. Jos syöttöarvo ei vastaa mitään ehtoja, se tulostaa epäonnistua.,
getline merkki < ”-”
if (merkki >= 90) print ”A+”
else if( merkki >= 80) tulosta ”A”
else if( merkki >= 70) print ”B+”
muuta tulostaa ”Fail” }’
Lähtö:
Siirry Sisältöä
awk-muuttujia
ilmoitus awk-muuttuja on samanlainen julistus shell-muuttuja. Muuttujan arvon lukemisessa on ero., ”$”- symbolia käytetään Shell-muuttujan muuttujan nimen kanssa arvon lukemiseksi. Mutta ei ole tarvetta käyttää ” $ ” awk muuttuja lukea arvo.
käyttäen yksinkertaista muuttujaa:
seuraava komento ilmoittaa muuttujan nimeltä ”site” ja tälle muuttujalle annetaan merkkijonoarvo. Muuttujan arvo on painettu seuraavassa lausumassa.
tuloksena on:
muuttujan Käyttäminen, jos haluat hakea tietoja tiedostoon
seuraava komento etsi ”sanan ” Printer’ tiedoston kohteita.txt. Jos jokin tiedoston rivi alkaa ’tulostimella’, se tallentaa 1., 2. ja 3. kenttien arvon kolmeen muuttujaan. nimi ja hintamuuttujat tulostetaan.
print ”hinta=” hinta }’ kohteita.,txt
tuloksena on:
Siirry Sisältöä
awk-taulukot
Molemmat numeerisia ja niihin liittyvät taulukot voidaan käyttää awk. Array muuttuja ilmoitus awk on sama muille ohjelmointikielille. Tässä osassa esitetään joitakin taulukoiden käyttötapoja.
assosiatiivinen Array:
järjestysnumero on mikä tahansa järjestysnumero. Tässä esimerkissä julistetaan ja painetaan kolmen elementin assosiatiivinen joukko.,
tuloksena on:
Numeerinen Array:
numeerinen joukko kolme elementtiä on ilmoitettu, ja painettu erottamalla välilehti.
tuloksena on:
Siirry Sisältöä
awk-silmukka
Kolmen tyyppisiä silmukoita tukee awk. Näiden silmukoiden käyttötavat näkyvät tässä kolmen esimerkin avulla.
While-silmukka:
while-silmukka, jota käytetään seuraava komento tulee toistaa 5 kertaa ja poistua silmukka break-lause.,
Lähtö:
silmukka:
silmukka, jota käytetään seuraavissa awk-komento laskee summan 1 10 ja tulostaa arvon.,
Lähtö:
Do-while-silmukka:
do-while-silmukan seuraava komento tulostaa kaikki parilliset numerot 10, 5.,
while (laskuri > 5) }’
Lähtö:
Siirry Sisältöä
awk tulosta ensimmäinen sarake
ensimmäisen sarakkeen tahansa tiedosto voidaan tulostaa käyttämällä $1 muuttuja awk. Mutta jos ensimmäisen sarakkeen arvo sisältää useita sanoja, niin vain ensimmäisen sarakkeen ensimmäinen sana tulostaa. Käyttämällä tiettyä rajaajaa, ensimmäinen sarake voidaan tulostaa oikein. Luo tekstitiedosto nimeltä opiskelijat.,txt seuraavalla sisällöllä. Tässä ensimmäisessä sarakkeessa on kahden sanan teksti.
opiskelijat.,txt
Abir Hossain 35<sup>th</sup> batch
John Abraham 40<sup>th</sup> batch
Run awk command without any delimiter. The first part of the first column will be printed.,
Suorita awk-komento seuraavasti erotin. Ensimmäisen sarakkeen koko osa painetaan.
tuloksena on:
Siirry Sisältöä
awk tulostaa viimeinen sarake
$(NF) muuttuja voidaan tulostaa viimeisen sarakkeen minkä tahansa tiedoston. Seuraavat awk-komennot tulostavat viimeisen osan ja täyden osan oppilaiden viimeisestä palstasta.txt-tiedosto.,
$ awk -F: ’\\s\\s’ ’{print $(NF)}’ opiskelijat.txt
tuloksena on:
Siirry Sisältöä
awk kanssa grep
grep on toinen hyödyllinen komento Linux etsiä sisältöä tiedosto joka perustuu mitään säännöllistä lauseketta. Seuraavassa esimerkissä esitetään, miten sekä awk-että grep-komentoja voidaan käyttää yhdessä. grep-komennolla haetaan työntekijätunnuksen ”1002” tietoja työntekijältä.txt-tiedosto. Grep-komennon lähtö lähetetään awk: lle syöttötietoina., 5% bonus lasketaan ja tulostetaan perusteella palkkaa työntekijän id, ’1002’, jonka awk-komento.
$ grep’ 1002 ’ työntekijä.txt | awk -F: ’\t’ ’{ print $2 ” saa $” ($3*5)/100 ”bonus”}’
tuloksena on:
Siirry Sisältöä
awk kanssa BASH-tiedosto
Kuten muutkin Linux-komento, awk-komento voi myös käyttää BASH-skripti. Luo tekstitiedosto nimeltä asiakkaat.txt seuraavalla sisällöllä. Jokainen tämän tiedoston rivi sisältää tietoa neljästä kentästä., Nämä ovat asiakkaan tunnus, nimi, osoite ja matkapuhelinnumero, jotka on erotettu”/”.
asiakkaat.txt
luo bash-tiedosto nimeltä item_search.bash seuraavan käsikirjoituksen kanssa. Tämän käsikirjoituksen mukaan valtion arvo otetaan käyttäjältä ja etsitään asiakkaista.txt-tiedosto grep-komennolla ja siirtyi awk-komennolle syötteenä. Awk-komento lukee jokaisen rivin 2. ja 4. kentät. Jos syöttöarvo vastaa asiakkaiden valtion arvoa.txt-tiedosto sitten se tulostaa asiakkaan nimen ja matkapuhelinnumeron, muuten se tulostaa viestin”ei asiakasta löytynyt”.,
item_search.bash
Suorita seuraavat komennot näyttää lähdöt.
$ bash item_search.bash
tuloksena on:
Siirry Sisältöä
awk-sed
Toinen hyödyllinen hakutyökalu Linux on sed. Tätä komentoa voidaan käyttää minkä tahansa tiedoston tekstin etsimiseen ja korvaamiseen. Seuraavassa esimerkissä esitetään awk-komennon käyttö sed-komennolla. Täällä, sed-komento etsii kaikki työntekijöiden nimet alkaa J-kirjaimella ja kulkee awk-komento syötteenä., awk tulostaa työntekijän nimen ja tunnuksen alustuksen jälkeen.
$ sed – n ’/ J / p ’ työntekijä.txt | awk -F: ’\t’ ’{ printf ”%s(%s)\n”, $2, $1 }’
tuloksena on:
Siirry Sisältöä
Johtopäätös:
Voit käyttää awk-komento luoda erilaisia raportteja, jotka perustuvat kaikki taulukkomuodossa tai rajattu data sen jälkeen, kun suodatus tiedot oikein. Toivottavasti, voit oppia, miten awk komento toimii harjoiteltuaan esimerkkejä näytetään tässä opetusohjelma.