Esimerkki 1: Tulosta sarakealue komentoulostulosta
Seuraava komento tulostaa toisen, kolmannen ja neljännen sarakkeen komennon tulostuksesta, 'Ls -l ’. Tässä sarakkeiden numerot ilmoitetaan nimenomaisesti, mutta seuraavassa esimerkissä näkyy tehokkaampi komento saman sarakealueen tulostamiseen.
$ls -he | awk '{print $ 2, $ 3, $ 4}'
Seuraava tulos annetaan yllä olevalla komennolla.
Esimerkki 2: Tulosta sarakealue tiedostosta käyttämällä varten silmukka
Seuraa tätä esimerkkiä ja muita tämän opetusohjelman esimerkkejä luomalla tekstitiedosto nimeltä marks.txt seuraavan sisällön kanssa :
Tunnus CSE203 CSE102 CSE202
1109 78 87 79
1167 67 81 70
1190 56 61 69
1156 89 55 78
199 54 66 58
Seuraava 'awk' -komento tulostaa kolme ensimmäistä saraketta marks.txt -tiedostosta. The varten silmukkaa käytetään sarakearvojen tulostamiseen, ja silmukka sisältää kolme vaihetta. The NF muuttuja ilmaisee tiedoston kenttien tai sarakkeiden kokonaismäärän.
$kissamarks.txt$awk '{varten (i = 1; i<=NF-1;i++) printf $i' '; print ''}'marks.txt
Seuraava komento tuotetaan suorittamalla komento. Tulos näyttää opiskelijan Tunnukset ja merkit CSE203 ja CSE102 .
Esimerkki 3: Tulosta sarakealue määrittelemällä alku- ja lopetusmuuttujat
Seuraava 'awk' -komento tulostaa kolme ensimmäistä saraketta komentolähdöstä 'ls -l' alustamalla alkaa ja päättyy muuttujia. Tässä arvo alkaa muuttuja on 1 ja arvo päättyy muuttuja on 3. Nämä muuttujat toistetaan a -silmukassa sarakearvojen tulostamiseksi.
$ls -he | awk 'ALKAA {ensimmäinen = 1; viimeinen = 3}{for (i = ensimmäinen; i
Seuraava tulos tulee näkyviin komennon suorittamisen jälkeen. Tulos näyttää lähdön kolme ensimmäistä sarakearvoa, 'ls -l'.
Esimerkki 4: Tulosta sarakealue tiedostosta muotoilulla
Seuraava 'awk' -komento tulostaa kohteen kolme ensimmäistä saraketta marks.txt käyttämällä printf ja tulostuskentän erotin ( OFS ). Tässä for -silmukka sisältää kolme vaihetta ja kolme saraketta tulostetaan peräkkäin tiedostosta. OFS käytetään tässä lisäämään tilaa sarakkeiden väliin. Kun silmukan (i) laskuriarvo on yhtä suuri kuin päättyy muuttuja, uusi rivi ( n) luodaan.
$kissamarks.txt$awk -v alkaa=1 -v loppuun=3 '{varten (i = alku; i<=end;i++) printf('%s%s',
$ i, (i == loppu)? ' n': OFS)} 'marks.txt
Seuraava lähtö luodaan yllä olevien komentojen suorittamisen jälkeen.
Esimerkki 5: Tulosta sarakealue tiedostosta käyttämällä ehdollista lauseketta
Seuraava 'awk' -komento tulostaa tiedoston ensimmäisen ja viimeisen sarakkeen käyttämällä for -silmukkaa ja if -käskyä. Tässä for -silmukka sisältää neljä vaihetta. The alkaa ja päättyy muuttujia käytetään komentosarjassa jättämään toinen ja kolmas sarake pois tiedostosta käyttämällä if -ehtoa. OFS -muuttujaa käytetään lisäämään tilaa sarakkeiden väliin, ja ORS -muuttujaa käytetään uuden rivin ( n) lisäämiseen viimeisen sarakkeen tulostamisen jälkeen.
$kissamarks.txt$awk -v alkaa=2 -v loppuun=3 '{varten (i = 1; i<=NF;i++)
jos (i> = aloita && i<=end) continue;
else printf ('%s%s', $ i, (i! = NF)? OFS: ORS)} 'marks.txt
Seuraava tulos tulee näkyviin yllä olevien komentojen suorittamisen jälkeen. Tulos näyttää marks.txt -tiedoston ensimmäisen ja viimeisen sarakkeen.
Esimerkki 6: Tulosta sarakealue tiedostosta käyttämällä NF -muuttujaa
Seuraava 'awk' -komento tulostaa tiedoston ensimmäisen ja viimeisen sarakkeen käyttämällä NF -muuttujaa. Sarakearvojen tulostamiseen ei käytetä silmukoita tai ehdollisia lausekkeita. NF ilmaisee kenttien määrän. Mark.txt -tiedostossa on neljä saraketta. $ (NF-3) määrittää ensimmäisen sarakkeen ja $ NF viimeisen sarakkeen.
$kissamarks.txt$awk '{print $ (NF-3)' '$ NF}'marks.txt
Seuraava tulos saadaan suorittamalla yllä olevat komennot. Tulos näyttää marks.txt -tiedoston ensimmäisen ja viimeisen sarakkeen.
Esimerkki 7: Tulosta sarakealue tiedostosta käyttämällä substr () ja index ()
Indeksi () -funktio palauttaa sijainnin, jos toinen argumentin arvo on ensimmäisen argumentin arvossa. Substr () -funktio voi sisältää kolme argumenttia. Ensimmäinen argumentti on merkkijonoarvo, toinen argumentti on lähtökohta ja kolmas argumentti on pituus. Substr (): n kolmas argumentti jätetään pois seuraavasta komennosta. Koska sarake alkaa $ 1: sta awk -komennossa, indeksi () palauttaa $ 3 ja komento tulostaa $ 3: sta $ 4: een.
$kissamarks.txt$awk '{print substr ($ 0, index ($ 0, $ 3))}'marks.txt
Seuraava lähtö tuotetaan suorittamalla yllä olevat komennot.
Esimerkki 8: Tulosta sarja sarakkeita peräkkäin tiedostosta printf -toiminnolla
Seuraava 'awk' -komento tulostaa marks.txt -tiedoston ensimmäisen, toisen ja kolmannen sarakkeen asettamalla tarpeeksi tilaa 10 merkille.
$kissamarks.txt$awk '// {printf' %10s %10s %10s n ', $ 1, $ 3, $ 2}'marks.txt
Seuraava lähtö tuotetaan suorittamalla yllä olevat komennot.
Johtopäätös
Sarakealueen voi tulostaa eri tavoilla komentoulostulosta tai tiedostosta. Tämä opetusohjelma näyttää kuinka 'awk' -komento voi auttaa Linux -käyttäjiä tulostamaan sisältöä taulukkotiedoista.