Sarakealueen tulostaminen 'awk' -komennolla

How Print Range Columns Using Awk Command

'Awk' -komento on yksi monista komennoista, joilla voidaan tulostaa sarakealueita taulukkotiedoista Linuxissa. Komentoa `awk` voidaan käyttää suoraan päätteestä suorittamalla` awk` -komentotiedosto. Tässä opetusohjelmassa näytämme, kuinka voit tulostaa sarakealueen taulukkotiedoista.

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.