|

Perintah awk Text Proses menyajikan dan memanipulasi data text

Awk adalah perintah sekaligus bahasa scripting yang digunakan untuk memanipulasi data dan menghasilkan laporan. Bahasa pemrograman atau perintah awk tidak memerlukan kompilasi dan memungkinkan pengguna untuk menggunakan variabel, fungsi numerik, fungsi string, dan operator logika.

Awk singkatan dari nama 3 pengembang yaitu Aho, Weinberger, dan Kernighan.

Apa yang bisa Di lakukan Dengan Awk ?
  • Scanning bari per bari dari sebuah file.
  • Split dari sebuat baris menjadi beberapa kolom.
  • Membandingkan baris dan kolom dengan patern pembanding.
  • Melakukan aksi terhadap line tertentu yang cocok.
  • Format tampilan OutPut.
  • Kondisi dan looping.
  • Artimatik dan String Proses.
Syntax
awk options 'selection _criteria {action }' input-file > output-file
Contoh Penggunakan awk

Untuk memperaktekkan penggunakan awk ini perlu memiliki file text yang menjadi input file, Silahkan membuat file dengan perintah vi, vim, nano atau editor text lainnya. Untuk isi text file nya bisa menggunakan contoh berikut ini.

File bisa dberikan nama pegawai.txt

Nama				Jenis Kelamin	Esselon		Pangkat
DADAN GANDANA			Pria		II.b 	 	Pembina Utama Muda
FAHRUDIN			Pria		III.a 	 	Pembina Tingkat I
DULHAK				Pria		III.b 		Penata Tingkat I
CHAERIL APRILIANA		Pria		III.b 		Pembina Tingkat I
ABDUL QODIR			Pria		III.b 		Pembina
RUSLAN FARID			Pria		III.b 		Pembina
ACI SULASTRIYANA, S.Pd		Wanita		IV.a 		Penata Tingkat I
SRI RUHYATIN, S.Pd		Wanita		IV.a 		Penata
AFNI FEBRI MAULANI, S.Pd	Wanita		IV.a 		Penata Tingkat I
SOBARI, S.I.P			Pria		IV.a 		Penata Tingkat I
Menampilan Setiap Baris isi File

Ini adalah kondisi bawaan atau default dari action print di awk.

# awk '{print}' pegawai.txt
// atau
# awk '{print $0}' pegawai.txt
Menampilan Nomor Baris NR variabel

Dengan tambahan Opsi NR bisa membantu menampilkan nomor baris.

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

NR juga bisa digunakan untuk menghasilkan output berdasarkan baris yang akan di cetak.

// MENCETAK BARIS KE 4
# awk '{print NR,$0}' pegawai.txt | awk 'NR==4'
// MENCETAK BARIS 1 -4 
# awk '{print NR,$0}' pegawai.txt | awk 'NR <= 4'
// MENCETAK BARIS KURANG DARI 3
# awk '{print NR,$0}' pegawai.txt | awk 'NR < 4'
//MENCETAK BARIS Lebih dari 9
# awk '{print NR,$0}' pegawai.txt | awk 'NR > 9'
//MENCETAK BARIS DARI BARIS 9 ke AKHIR
# awk '{print NR,$0}' pegawai.txt | awk 'NR >= 9'

Menampilan Data PerKolom / Field

Defaultnya spasi/space pada baris akan berfungis sebagai delimiter dan menyatakan sebagai kolom berbeda, jadi setiap baris jika memilki jumlah spasi/space akan memiliki jumlah kolom yang berbeda. Setiap pemanggilan Kolom menggunakan tanda $

# awk '{print $1}' pegawai.txt
//atau
# awk '{print $1, $2}' pegawai.txt
[root@alma8 home]# awk '{print $1, $2}' pegawai.txt
Nama Jenis
DADAN GANDANA
FAHRUDIN Pria
DULHAK Pria
CHAERIL APRILIANA
ABDUL QODIR
RUSLAN FARID
ACI SULASTRIYANA,
SRI RUHYATIN,
AFNI FEBRI
SOBARI, S.I.P

Dapat dilihat dari data baris FHANRUDIN dan DULHAK yang mana baris jenis kelamin masuk kedalam kolom ke-2 dikarenakan perbedaan spasi/space.

Menampilan Kolom / Field Terakhri NF variabel

Karena setiap Kolom atau Field bisa berbeda, gunakan opsi $NF untuk mencetak akhir kolom.

# awk '{print $NF}' pegawai.txt
[root@alma8 home]# awk '{print $NF}' pegawai.txt
Pangkat
Muda
I
I
I
Pembina
Pembina
I
Penata
I
I
Menampilan Dengan Kondisi Pola Tertentu / Pattern

awk juka dapat langsung menyari data dengan pola atau pattern, memudahkan penyaringan data. Dalam contoh ini menggunakan kondisi pola atau pattern dimana data pegawai esselon “III.b”.

# awk '/III.b/ {print}' pegawai.txt
[root@alma8 home]# awk '/III.b/ {print $0}' pegawai.txt
DULHAK                          Pria            III.b           Penata Tingkat I
CHAERIL APRILIANA               Pria            III.b           Pembina Tingkat I
ABDUL QODIR                     Pria            III.b           Pembina
RUSLAN FARID                    Pria            III.b           Pembina
Menggunakan Hasil Input Kolom menjadi Variable

awk juga bisa menyimpan hasil ke dalam sebuah variabel, Dalam contoh dibawah ini $1 kolom 1 kana di smpangi variable x dan di cetak

# awk '{ x = $1 }; { print x}' pegawai.txt
[root@alma8 home]# awk '{ x = $1 }; { print x}' pegawai.txt
Nama
DADAN
FAHRUDIN
DULHAK
CHAERIL
ABDUL
RUSLAN
ACI
SRI
AFNI
SOBARI,
Hasil OutPut dari file Program

awk juga bisa digunakan bersamaan dengan file program, dalam contoh mencetak kolom 1 demgan perulangan yang di tulis kedalam file program bernama tes.awk dengan isi berikut ini;

# file tes.awk
{
peg[i++]=$1;
sum = 0;
}
END{
for (i in peg)
{
nama=peg[i];
print i, nama;
}}

Untuk menjalankannya dengan perintah dibawah ini.

# awk -f tes.awk pegawai.txt
Meyimpan Ke file baru hasil Out put awk

Hasil Out put awk bisa disimpan di file baru dan digunakan kembali nantinya, dengan menambahkan operator > lalu nama file. Contoh dibawah ini menyimpan hasil outout contoh sebelumnya ke falam file nama.txt

# awk -f tes.awk pegawai.txt > nama.txt
[root@alma8 home]# awk -f tes.awk pegawai.txt > nama.txt
[root@alma8 home]# more nama.txt
0 Nama
1 DADAN
2 FAHRUDIN
3 DULHAK
4 CHAERIL
5 ABDUL
6 RUSLAN
7 ACI
8 SRI
9 AFNI
10 SOBARI,
[root@alma8 home]#
Membagi kolom/Field dengan Delimiter

Defaultnya awk menggunakan space/spasi sebagai delimiter field/kolom, tapi delimiter ini dapat disesuaikan dengam opsi -F. Sebagai contoh dalam kasus ini membagi 2 Field/Kolom dengan Delimiternya dan adalah Pria dan Wanita.

#  awk -F "Pria|Wanita" '/Pria|Wanita/ {print NR-1,$1}' pegawai.txt
awk delimiter and pattern filter

Hasil output yang didapatkan keseluruhan nama dari pegawai lengkap berseta gelar pendidikan.

STDIN input AWK

AWK juga bisa melakukan proses pada input STDIN. seperti contoh dibawah

# cat /var/log/messages | awk '/httpd/ {print}'

Perintah cat pada dasarnya melihat isi file lalu dengan awk kita bisa melakukan filter data yang ingin ditampilkan, fungsi menjadi seperti perintah grep.

[root@alma8 ~]# cat /var/log/messages | awk '/httpd/ {print}'
Jul  4 06:42:21 alma8 httpd[1193]: Server configured, listening on: port 443, port 80
Jul  4 01:58:47 alma8 httpd[1177]: Server configured, listening on: port 443, port 80
Jul  5 20:29:44 alma8 httpd[1186]: Server configured, listening on: port 443, port 80
Jul  6 19:33:46 alma8 httpd[1168]: Server configured, listening on: port 443, port 80

Dengan memanfaatkan perintah awk sangat membantu dalam melakukan proses text, sehingga bisa dimanfaatkan sebagai hasil atau input program lainnya. Sampai disini artikel perintah awk, Selamat mencoba.

Similar Posts

4.7 3 votes
Article Rating
Subscribe
Notify of
guest

0 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments