Paréntah, sintaksis, jeung conto
Paréntah awk mangrupakeun metoda kuat pikeun ngolah atawa analisa téks file-hususna, file data nu diayakeun ku garis (barisan) jeung kolom.
Paréntah awk basajan bisa ngajalankeun ti garis paréntah . Langkung tugas kompleks kudu ditulis salaku program awk (disebut awk Aksara) kana file a.
The format dasar tina hiji paréntah awk Sigana mah ieu:
'pola {peta}' awk input-file> kaluaran-fileHartina: nyandak unggal garis dina file input; lamun garis ngandung pola nu nerapkeun Peta ka garis tur nulis garis anu dihasilkeun kana kaluaran-file. Lamun pola kasebut disingkahkeun, aksi kasebut dilarapkeun ka sadaya garis. Salaku conto:
awk '{nyitak $ 5}' table1.txt> output1.txtpernyataan ieu nyokot unsur kolom 5 unggal garis jeung nyerat eta salaku garis dina file output "output.txt". Variabel '$ 4' nujul kana kolom kadua. Nya kitu anjeun bisa ngakses kolom kahiji, kadua, sarta katilu, mibanda $ 1, $ 2, $ 3, jsb Ku kolom standar anu dianggap bisa dipisahkeun ku spasi atanapi tab (disebut spasi bodas). Ku kituna, lamun file input "table1.txt" ngandung garis ieu:
1, Justin Timberlake, Judul 545, Harga $ 7.30 2, Taylor Swift, Judul 723, Harga $ 7.90 3, Mick Jagger, Judul 610, Harga $ 7.90 4, Lady Gaga, Judul 118, Harga $ 7.30 5, Ganjar Cash, Judul 482, Harga $ 6,50 6, Elvis Presley, Judul 335, Harga $ 7.30 7, John Lennon, Judul 271, Harga $ 7.90 8, Michael Jackson, Judul 373, Harga $ 5,50Lajeng sorana bakal nulis garis handap ka file output "output1.txt":
545, 723, 610, 118, 482, 335, 271, 373,Lamun SEPARATOR kolom téh hal lian ti spasi atanapi Tab, kayaning koma, Anjeun bisa netepkeun yén dina pernyataan awk saperti kieu:
awk -F, '{nyitak $ 3}' table1.txt> output1.txtIeu bakal milih unsur tina kolom 3 unggal garis lamun kolom anu dianggap dipisahkeun ku koma. Kituna output, dina hal ieu, bakal jadi:
Judul 545 judul 723 judul 610 judul 118 judul 482 judul 335 judul 271 judul 373Daptar pernyataan jero kurung Curly ( '{', '}') disebut blok a. Lamun nempatkeun ekspresi kondisional di hareup blok a, pernyataan jero blok bakal dieksekusi ngan lamun kondisi anu leres.
awk '$ 7 == "\ $ 7,30" {nyitak $ 3}' table1.txtDina hal ieu, kaayaan kasebut $ 7 == "\ $ 7,30", nu hartina unsur dina kolom 7 sarua jeung $ 7,30. The backslash di hareup tanda dollar anu dipaké pikeun nyegah sistem ti alih basa $ 7 salaku variabel sarta gantina nyokot tanda dollar sacara harfiah.
Ku kituna ieu pernyataan awk prints kaluar unsur dina kolom 3 unggal garis nu boga "$ 7,30" dina kolom 7.
Anjeun oge bisa make ungkapan biasa sakumaha kondisi. Salaku conto:
awk '/ 30 / {nyitak $ 3}' table1.txtThe string antara dua slashes ( '/') nyaéta éksprési biasa. Dina hal ieu, éta ngan string nu "30." Ieu ngandung harti lamun hiji garis ngandung string "30", sistem prints kaluar unsur dina kolom 3 of garis éta. Kaluaran dina conto di luhur bakal jadi:
Timberlake, Gaga, Presley,Mun unsur tabel nu nomer awk tiasa ngajalankeun itungan dina éta stasiun di conto ieu:
awk '{print ($ 2 * $ 3) + $ 7 }'Di sagigireun variabel anu ngaksés unsur baris ayeuna ($ 1, $ 2, jsb) aya variabel $ 0 anu nujul kana lengkep sakaligus (garis), sarta NF variable nu nahan kana Jumlah widang.
Anjeun oge bisa nangtukeun variabel anyar saperti dina conto ieu:
awk '{jumlah = 0; pikeun (col = 1; col <= NF; col ++) jumlah + = $ col; Jumlah print; } 'Ieu perhitungan jeung prints sakur unsur unggal baris.
Pernyataan Awk anu remen digabungkeun jeung paréntah séd .