Saat bekerja dengan Linux, salah satu alat paling ampuh yang tersedia untuk pemrosesan teks adalah perintah awk. Ini adalah alat baris perintah serbaguna yang dapat digunakan untuk berbagai tugas, termasuk mencari, memfilter, dan memanipulasi data teks.
Advertisement
Dalam artikel ini, kita akan membahas dasar-dasar awk, termasuk sintaksnya, cara menggunakannya baris perintah, dan beberapa contoh dasar tentang cara menggunakannya untuk memproses data teks.
Apa itu awk?
Awk adalah bahasa pemrograman yang dirancang untuk pemrosesan teks dan ekstraksi data. Ini dikembangkan di Bell Labs pada tahun 1970-an dan sekarang menjadi fitur standar sebagian besar sistem operasi berbasis Unix, termasuk Linux.
Awk sangat berguna untuk memproses file teks, karena memungkinkan Anda untuk mencari, memfilter, dan memanipulasi data berdasarkan pola atau kondisi. Ini bekerja dengan membaca data dari file atau input standar, menerapkan seperangkat aturan atau perintah ke data tersebut, dan kemudian mencetak hasilnya. Sintaks
Awk
Sintaks dasar dari perintah awk adalah sebagai berikut:
awk `pattern {action}` file1awk `pattern {action}` file
Di sini, pola menentukan kondisi yang harus dipenuhi agar tindakan dapat dilakukan, dan file menentukan file tempat perintah harus beroperasi. Jika tidak ada file yang ditentukan, awk akan membaca data dari input standar (yaitu keyboard). loops.
Awk One-Liner Statements
Salah satu hal hebat tentang awk adalah dapat digunakan untuk menulis one-liners – perintah pendek dan kuat yang dapat dijalankan langsung dari baris perintah.
Berikut beberapa contoh awk one-liners yang dapat Anda gunakan dapat digunakan untuk melakukan tugas pemrosesan teks umum:
Cetak kolom pertama file CSV:
awk -F "," `{print $1}` file.csvPrint kolom khusus file CSV:
awk -F "," `{print $1, $3}` file.csv
Perintah ini menggunakan opsi -F untuk menentukan bahwa file dipisahkan koma, lalu mencetak kolom pertama dan ketiga dari file .
Hitung jumlah baris dalam file:
awk `END {print NR}` file.txtPrint semua baris yang cocok dengan sp ecific pattern::
awk `/pattern/ { print }` file.txtCount jumlah kemunculan pola dalam file:
awk `/pattern/ { count++ } END { print count }` file.txtPrint baris terakhir file:
awk `END { print }` file.txtPrint nilai rata-rata kolom dalam file:
awk `{ sum+=$2 } END { print sum/NR }` file.txtPrint rata-rata kolom kedua dalam sebuah file:
awk `{sum += $2} END {print sum/ NR}` file.txtPrint baris dalam urutan terbalik:
awk `{a[i++] = $0} END {for (j=i-1; j>=0;) print a[j--] }` file.txtPrint isi file:
awk `{print}` file.txt
Perintah ini hanya membaca isi file .txt dan mencetak setiap baris ke layar.
Cari baris yang berisi pola tertentu:
awk `/error/ {print}` file.log
Perintah ini mencari baris yang berisi kata "error" dan mencetaknya ke layar.
Anda mungkin menyukai: Operasi Aritmatika AWK: Panduan Pemula untuk Metode Perhitungan Dasars
Awk untuk Administrasi Sistem
Sekarang mari kita lihat beberapa contoh praktis tentang bagaimana awk dapat digunakan untuk tugas administrasi sistem.
Memparsing File Log
File log adalah alat penting bagi administrator sistem untuk memantau kinerja sistem dan mendiagnosis masalah. Namun, mereka sulit untuk dibaca dan dianalisis, terutama ketika mengandung data dalam jumlah besar.
Awk dapat digunakan untuk mengurai file log dan mengekstrak informasi yang relevan. Misalnya, perintah berikut akan mengekstrak semua alamat IP dari file log akses Apache:
awk `{ print $1 }` access.log1awk `{ print $1 }` access.log
Perintah ini akan mencetak kolom pertama dari file log akses, yang berisi alamat IP klien.
Monitoring System Resources
Awk juga dapat digunakan untuk memantau sumber daya sistem, seperti penggunaan CPU dan memori. Misalnya, perintah berikut akan menampilkan 5 proses teratas yang paling banyak menggunakan CPU:
ps aux | awk `{cetak $2, $3, $11}` | urutkan -k2rn | kepala -n51ps aux | awk `{cetak $2, $3, $11}` | urutkan -k2rn | head -n5
Perintah ini akan menggunakan ps untuk membuat daftar semua proses yang berjalan, kemudian menggunakan awk untuk mengekstrak ID proses, penggunaan CPU, dan nama proses. Perintah sortir digunakan untuk mengurutkan keluaran berdasarkan penggunaan CPU, dan perintah head digunakan untuk menampilkan hanya 5 hasil teratas.
Menghasilkan Laporan
Administrator sistem seringkali perlu membuat laporan tentang berbagai aspek kinerja dan penggunaan sistem. Awk dapat digunakan untuk mengekstrak dan meringkas data dari file log, file sistem, dan sumber lainnya.
Misalnya, perintah berikut akan menghasilkan laporan tentang penggunaan disk dari semua sistem file yang dipasang:
df -h | awk `{ cetak $1, $5 }`1df -h | awk `{ print $1, $5 }`
Perintah ini akan menggunakan df untuk mencantumkan semua sistem file yang dipasang, lalu gunakan awk untuk mengekstrak nama sistem file dan persentase ruang disk yang digunakan.
Memodifikasi File Konfigurasi
File konfigurasi adalah bagian penting dari administrasi sistem, dan seringkali perlu dimodifikasi untuk mengoptimalkan kinerja sistem atau memperbaiki masalah. Awk dapat digunakan untuk memodifikasi file konfigurasi di tempat, tanpa perlu mengedit manual.
Misalnya, perintah berikut akan mengganti semua kemunculan "localhost" dengan "example.com" di file konfigurasi Apache:
awk `{gsub( /localhost/, "contoh.com"); print}` /etc/apache2/apache2.conf > /tmp/apache2.conf1awk `{gsub(/localhost/, "example.com"); print}` /etc/apache2/apache2.conf > /tmp/apache2.conf
Perintah ini akan menggunakan awk untuk mencari string "localhost" di file konfigurasi Apache, dan menggantinya dengan "example.com". File konfigurasi yang dimodifikasi kemudian ditulis ke file sementara.
Conclusion
Awk adalah alat yang ampuh untuk pemrosesan teks dan ekstraksi data di Linux. Ini relatif mudah dipelajari dan menyediakan berbagai kemampuan yang dapat digunakan untuk memanipulasi dan mengubah data teks.
Dalam artikel ini, kami membahas dasar-dasar awk, termasuk sintaksnya, cara menggunakannya pada baris perintah, dan beberapa dasar contoh bagaimana itu dapat digunakan untuk memproses data teks. Kita juga membahas awk one-liners, yang merupakan perintah ampuh yang dapat digunakan untuk melakukan tugas pemrosesan teks umum dengan sedikit usaha.
Dengan pengetahuan ini, Anda dapat mulai menjelajahi fitur awk yang lebih canggih, termasuk ekspresi reguler, variabel, dan fungsi. Dengan menguasai awk, Anda dapat menjadi pengguna Linux yang lebih efisien dan efektif, mampu memproses data teks dalam jumlah besar dengan mudah.
Referensi tecadmin.comArtikel Diperbarui pada: March 03, 2023
Kontributor: Syauqi Wiryahasana
Model: Haifa Manik Intani