|

Perintah AWK Fungsi Built-in Variabel

Ketika menggunakan awk ada beberapa variabel yang bisa digunakan tanpa perlu didefiniskan isinya karena sudah memiliki nilai default, varibel ini memiliki istila Built-in Variabel. Walau variable ini sudah memiliki nilai default user masih bisa melakukan perubahan terhadap nilai variabel ini.

Built-in Variabel

FILENAME : Info file input
NR : Jumlah dan nomor Baris (Semua File Input)
NF : Jumlah Kolom di Setiap Baris
FNR : Jumlah dan momor Baris dari Setiap Input (Per File Input)
FS : Field Sparator / Delimiter
OFS : Menampilkan Out Put FS / Delimiter Kolom
ORS : Menampilan Out Put RS / Delimter Baris
RS : Record Sparator / Delimiter bar

AWK Built-in Variabel FILENAME

Variabel FILENAME ini berfungsi menampilan nama file yang dijadikan input. Untuk menggunakannya bisa langsung dipanggil nama variable beserta dua input file, seperti dalam contoh berikut ini :

# awk '{print FILENAME}' ./buah.txt /home/pegawai.txt
awk FILENAME

Jika dilihat hasil outputnya akan mencetak nama file sejumlah baris yang dimiliki file. Dalam contoh file buah.txt memiliki 10 baris dan pegawai.txt memiliki 11 baris.

AWK Built-in Variabel NR

NR variabel yang mendapatkan jumlah baris/row dari input, misalkan sebuah file memiliki 10 baris data maka hasil dari NR adalah 10. Sebagai contoh berikut ini.

# awk '{print NR,$0}' buah.txt
AWK NR

Bisa dilihat dari hasil output nya disebelah kiri dari Kolom nama buah ada nomor field.

NR juga bisa dimanfaatkan untuk mencetak Baris Tertentu, misal ingin mencetak baris 3 – 5 dari file buah.txt

# awk 'NR==3, NR==5 {print $0}' buah.txt

Hasilnya akan seperti digambar mencetak bari 3 sampai dengan baris 5 dari file buah txt.

AWK Built-in Variabel NF

NF variable yang nilainya di dapat dari jumlah kolom/ field di setiap baris dimana white space adalah delimiter setiap data dari input.

# awk '{print "baris", NR, "Jumlah Kolom", NF}' pegawai.txt
AWK NR

OutPut nya bisa dilihat diatas menampilkan jumlah kolom per baris.

Hal ini bisa dimafaat kan lebih ketika ingin memilah data dalam satu baris, dalam contoh dibawah ada file dengan isian satu baris dengan beberapa data buah, warna ,jumlah dan harga. Dimana ingin diubah formatnya menjadi beberapa baris.

[root@alma8 ~]# cat buah2.txt
Apel            red    4        $20.    Pisang          yellow 6        $10.    Stroberi        red    3        $30.      Rasberi         red    99       $100.
[root@alma8 ~]# awk -F'.\t' '{n=NF;} END{for (i=1;i <= n;i++){print $i;}}' buah2.txt
Apel            red    4        $20
Pisang          yellow 6        $10
Stroberi        red    3        $30
Rasberi         red    99       $100.
[root@alma8 ~]#

Dengan begini formatnya bisa diubah dari satu baris data menjadi beberapa baris.

AWK Built-in Variabel FNR

FNR hampir sama dengan NR perbedaannya akan menampilkan jumlah baris per file input. Bisa dilihat cotoh dibawah dengan duan input.

# awk '{print FNR}' buah.txt pegawai.txt
[root@alma8 ~]# awk '{print FNR}' buah.txt pegawai.txt
1
2
3
4
5
6
7
8
9
10
1
2
3
4
5
6
7
8
9
10
11

Hasilnya akan menghitung jumlah dan nomor baris per file input dimana buah.txt ada 10 baris dan pegawai.txt ada 11 baris

AWK Built-in Variabel FS

FS varibel untuk Field Sparator yang biasa digunakan untuk delimiter per kolom, memiliki nilai awal white space atau spasi. Nilai FS yang jadi delimiter ini bisa diubah sesuai kebutuhan.

Untuk menggunakan FS bisa dengan dua cara :

  • Menggunakan option -F
  • Menggunakan Variabel FS
// Menggunakan option -F
# awk -F '[:;]' '{print $1,$2,$3,$4}' buah3.txt

// Menggunakan Variabel FS
# awk -F '[:;]' '{print $1,$2,$3,$4}' buah3.txt

Delimiter yang digunakan adalah 2, yaitu tanda : dan ; yang hasilnya akan memisahkan data buah3.txt menjadi 4 kolom.

AWK Built-in Variabel OFS

OFS Varibel ini berfungsi untuk menentukan menampilan field sparator (FS) atau delimiter yang tampil pada OutPut.
Sebagai contoh akan melanjutkan dari contoh FS dimana delimiter yang digunakan adalah ( : ) dan ( ; ) akan menjadi tanda dash ( - ) pada OutPut

# awk 'BEGIN {FS="[:;]"; OFS="-"} {print $1,$2,$3,$4}' buah3.txt
//atau
# awk -F '[:;]' 'BEGIN {OFS ="-"}{print $1,$2,$3,$4}' buah3.txt
awk ofs

Dapat dilihat delimiter antar kolom sudah berubah menjadi tanda dash -.

AWK Built-in Variabel ORS

ORS Variabel yang akan membuat tampilan menjadi 1 baris dengan delimiter yang ditentukan.
Sebagai contoh melanjutkan dari contoh FS tampilan file buah3.txt yang terdiri 3 baris akan diubah menjadi 1 baris dengan delimiter ( | )

# awk -F '[:;]' 'BEGIN {ORS ="|"}{print $1,$2,$3,$4}' buah3.txt
//atau
awk 'BEGIN {FS="[:;]"; ORS="|"} {print $1,$2,$3,$4}' buah3.txt
awk ors

Dapat dilihat tampilannya isi file dengan 3 baris berubah menjadi 1 baris dengan field sparator bertanda ( | ).

AWK Built-in Variabel RS

RS Variabel Record Sparator berfungsi membuat batasan baru untuk satu baris data, defaultnya 1 baris data adalah 1 record. Dengan RS dua atau lebih baris data bisa dianggap 1 record.

# awk 'BEGIN{RS=",";} {print $1,$2,$3,$4}' buah4.txt

File buah4.txt memiliki 6 baris yang dianggap 6 record. Dengan variabl RS diberi nilai tanda koma ( , ) satu record adalah gabungan antara tanda koma ( , ).

Similar Posts

4.5 2 votes
Article Rating
Subscribe
Notify of
guest

0 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments