Kumaha Tulis AWK Paréntah sarta Aksara

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-file

Hartina: 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.txt

pernyataan 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,50

Lajeng 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.txt

Ieu 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 373

Daptar 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.txt

Dina 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.txt

The 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 .