Primjer 1: Ispišite raspon stupaca s izlaza naredbe
Sljedeća naredba ispisat će drugi, treći i četvrti stupac iz izlaza naredbe, ‘Ls -l ‘. Ovdje su brojevi stupaca izričito navedeni, ali učinkovitija naredba za ispis istog raspona stupaca prikazana je u sljedećem primjeru.
$ls - | awk '{ispišite 2 USD, 3 USD, 4 USD $'
Sljedeći izlaz proizvodi gornja naredba.
Primjer 2: Ispišite raspon stupaca iz datoteke pomoću a za petlja
Da biste slijedili ovaj i ostale primjere u ovom vodiču, stvorite tekstualnu datoteku pod nazivom marks.txt sa sljedećim sadržajem :
ID CSE203 CSE102 CSE202
1109 78 87 79
1167 67 81 70
1190 56 61 69
1156 89 55 78
199 54 66 58
Sljedeća naredba `awk` ispisat će prva tri stupca marks.txt. The za loop koristi se za ispis vrijednosti stupca, a petlja uključuje tri koraka. The NF varijabla označava ukupni broj polja ili stupaca datoteke.
$mačkamarks.txt$awk '{for (i = 1; i<=NF-1;i++) printf $i' '; print ''}'marks.txt
Sljedeći izlaz bit će proizveden pokretanjem naredbe. Ispis prikazuje učenika Osobne iskaznice i oznake za CSE203 i CSE102 .
Primjer 3: Ispišite raspon stupaca definiranjem početne i završne varijable
Sljedeća naredba `awk` ispisat će prva tri stupca iz naredbe izlaz 'ls -l' inicijalizacijom s početkom i završetak varijable. Ovdje je vrijednost s početkom varijabla je 1, a vrijednost završetak varijabla je 3. Ove se varijable ponavljaju u for petlji za ispis vrijednosti stupca.
$ls - | awk 'BEGIN {first = 1; posljednji = 3}{for (i = prvo; i
Nakon izvođenja naredbe pojavit će se sljedeći izlaz. Izlaz prikazuje prve tri vrijednosti stupca izlaza, 'ls -l'.
Primjer 4: Ispišite niz stupaca iz datoteke s oblikovanjem
Sljedeća naredba `awk` ispisat će prve tri kolone datoteke marks.txt koristeći printf i separator izlaznog polja ( OFS ). Ovdje petlja for uključuje tri koraka, a tri će se stupca ispisivati u nizu iz datoteke. OFS ovdje se koristi za dodavanje razmaka između stupaca. Kad je vrijednost brojača petlje (i) jednaka završetak varijabla, tada se generira novi redak ( n).
$mačkamarks.txt$awk -v početak=1 -v kraj=3 '{for (i = početak; i<=end;i++) printf('%s%s',
$ i, (i == kraj)? ' n': OFS)} 'marks.txt
Sljedeći izlaz bit će generiran nakon pokretanja gornjih naredbi.
Primjer 5: Ispišite raspon stupaca iz datoteke pomoću uvjetne naredbe
Sljedeća naredba `awk` ispisat će prvi i zadnji stupac iz datoteke pomoću for petlje i if naredbe. Ovdje petlja for uključuje četiri koraka. The s početkom i završetak varijable se koriste u skripti za izostavljanje drugog i trećeg stupca iz datoteke pomoću uvjeta if. Varijabla OFS koristi se za dodavanje razmaka između stupaca, a varijabla ORS se koristi za dodavanje novog retka ( n) nakon ispisa zadnjeg stupca.
$mačkamarks.txt$awk -v početak=2 -v kraj=3 '{for (i = 1; i<=NF;i++)
ako je (i> = početak && i<=end) continue;
else printf ('%s%s', $ i, (i! = NF)? OFS: ORS)} 'marks.txt
Sljedeći izlaz pojavit će se nakon pokretanja gornjih naredbi. Ispis prikazuje prvi i posljednji stupac marks.txt.
Primjer 6: Ispišite raspon stupaca iz datoteke pomoću varijable NF
Sljedeća naredba `awk` ispisat će prvi i posljednji stupac iz datoteke pomoću NF varijable. Za ispis vrijednosti stupaca ne koriste se petlje ili uvjetni izrazi. NF označava broj polja. U marks.txt postoje četiri stupca. $ (NF-3) definira prvi stupac, a $ NF označava zadnji stupac.
$mačkamarks.txt$awk '{print $ (NF-3)' '$ NF}'marks.txt
Sljedeći izlaz proizvodi se pokretanjem gore navedenih naredbi. Ispis prikazuje prvi i posljednji stupac marks.txt.
Primjer 7: Ispišite raspon stupaca iz datoteke pomoću substr () i index ()
Funkcija index () vraća poziciju ako vrijednost drugog argumenta postoji u vrijednosti prvog argumenta. Funkcija substr () može uzeti tri argumenta. Prvi argument je vrijednost niza, drugi argument je početna pozicija, a treći argument je duljina. Treći argument substr () izostavljen je u sljedećoj naredbi. Budući da stupac počinje s $ 1 u naredbi `awk`, funkcija index () vratit će $ 3, a naredba će ispisati od $ 3 do $ 4.
$mačkamarks.txt$awk '{print substr ($ 0, indeks ($ 0, $ 3))}'marks.txt
Sljedeći izlaz bit će proizveden pokretanjem gore navedenih naredbi.
Primjer 8: Uzastopno ispišite raspon stupaca iz datoteke pomoću printf
Sljedeća naredba `awk` ispisat će prvi, drugi i treći stupac marks.txt postavljanjem dovoljno prostora za 10 znakova.
$mačkamarks.txt$awk '// {printf' %10s %10s %10s n ', $ 1, $ 3, $ 2}'marks.txt
Sljedeći izlaz bit će proizveden pokretanjem gore navedenih naredbi.
Zaključak
Postoje različiti načini ispisa raspona stupaca iz naredbenog izlaza ili datoteke. Ovaj vodič prikazuje kako naredba `awk` može pomoći korisnicima Linuxa u ispisivanju sadržaja iz tabličnih podataka.