grep, sed, dan awk adalah tiga alat klasik yang sering dipakai di terminal Linux untuk mengolah teks. Ketiganya membantu mencari baris tertentu, mengubah isi berkas, dan merangkum data tanpa harus membuka editor grafis. Bagi pemula, memahami ketiga alat ini memberi dasar yang kuat untuk bekerja dengan berkas log, data teks, dan keluaran perintah.
Masing-masing alat punya peran yang berbeda. grep mencari baris yang cocok dengan pola. sed mengubah teks secara berurutan, misalnya mengganti kata di seluruh berkas. awk memproses teks per kolom sehingga cocok untuk merangkum log. Dengan mengenal perbedaan ini, Anda bisa memilih alat yang tepat untuk tugas yang sedang dikerjakan.
Latihan sebaiknya dilakukan pada berkas milik sendiri atau pada lingkungan uji yang diizinkan. Jangan gunakan perintah ini untuk mengakses atau mengubah sistem orang lain tanpa izin. Selalu buat cadangan sebelum mengubah berkas, terutama saat memakai opsi yang menulis langsung ke berkas.
grep: Menemukan Baris yang Cocok dengan Pola
grep adalah alat pencarian baris. Ia membaca masukan teks, lalu menampilkan baris yang cocok dengan pola yang diberikan. Pola bisa berupa kata sederhana atau ekspresi reguler. Karena grep hanya menampilkan baris yang cocok, alat ini cocok untuk menyaring log yang panjang.
Contoh dasar:
grep "ERROR" aplikasi.log
Perintah ini menampilkan setiap baris dalam aplikasi.log yang mengandung kata ERROR. Jika Anda ingin melihat nomor baris, gunakan opsi -n:
grep -n "gagal login" autentikasi.log
Opsi -i membuat pencarian tidak membedakan huruf besar dan kecil. Opsi -v menampilkan baris yang tidak cocok. Opsi -c menghitung jumlah baris yang cocok. Opsi -E memungkinkan pola alternatif, seperti mencari error atau gagal sekaligus. Dalam latihan, mulailah dengan pola sederhana agar mudah memahami hasilnya.
grep juga dapat membaca dari pipa. Misalnya, hasil perintah ps atau journalctl dapat disaring dengan grep. Namun, pastikan Anda memahami keluaran perintah sumber sebelum menyaringnya. Pada sistem yang bukan milik Anda, jangan gunakan grep untuk mencari informasi sensitif tanpa izin.
sed: Mengubah Teks Secara Berurutan
sed adalah editor aliran. Ia memproses teks baris demi baris dan menerapkan perintah transformasi. Kegunaan umumnya adalah mengganti teks, menghapus baris, atau menampilkan rentang baris tertentu. Karena sed bekerja berurutan, hasil satu perintah dapat menjadi masukan perintah berikutnya dalam skrip.
Contoh penggantian kata:
sed 's/lama/baru/g' data.txt
Perintah ini menampilkan isi data.txt dengan setiap kemunculan lama diganti menjadi baru. Huruf g di akhir perintah berarti penggantian dilakukan di seluruh baris, bukan hanya kemunculan pertama. Jika ingin menyimpan hasil langsung ke berkas, gunakan opsi -i:
sed -i 's/lama/baru/g' data.txt
Opsi -i menulis perubahan ke berkas asli. Karena aksi ini tidak bisa dibatalkan dengan mudah, buat cadangan dulu:
cp data.txt data.txt.bak
sed -i 's/lama/baru/g' data.txt
sed juga bisa menampilkan baris tertentu:
sed -n '1,5p' data.txt
Perintah ini menampilkan baris pertama sampai kelima. Anda dapat menghapus baris yang cocok dengan pola menggunakan perintah d, misalnya sed '/DEBUG/d' log.txt. Hindari menjalankan sed -i pada berkas sistem atau berkas orang lain. Gunakan pada berkas latihan, lalu periksa hasilnya sebelum menerapkan ke berkas penting.
awk: Memproses Teks per Kolom
awk dirancang untuk memproses data berbasis kolom. Secara bawaan, awk membagi setiap baris menjadi kolom berdasarkan spasi atau tab. Kolom pertama disebut $1, kolom kedua $2, dan seterusnya. Karena itu, awk sangat cocok untuk merangkum log yang memiliki format tetap.
Contoh menampilkan kolom pertama dan keempat:
awk '{print $1, $4}' akses.log
Jika log memiliki pemisah khusus, misalnya titik dua, gunakan opsi -F:
awk -F: '{print $1}' daftar.txt
awk dapat menghitung dan merangkum data. Misalnya, menghitung jumlah baris yang mengandung ERROR:
awk '/ERROR/ {jumlah++} END {print "Jumlah ERROR:", jumlah}' aplikasi.log
Blok END dijalankan setelah semua baris diproses. Variabel NF menyatakan jumlah kolom pada baris saat ini, sedangkan NR menyatakan nomor baris. Anda juga bisa menjumlahkan nilai pada kolom tertentu. Kemampuan ini membuat awk berguna untuk membuat ringkasan cepat dari data teks tanpa perlu program tambahan.
Seperti grep dan sed, awk sebaiknya dipakai pada data yang Anda miliki atau yang diizinkan untuk dianalisis. Jangan gunakan untuk mengekstrak data pribadi dari sistem yang tidak Anda kelola.
Menggabungkan grep, sed, dan awk dalam Alur Kerja
Ketiga alat ini sering digabungkan dengan pipa. Alur kerja yang umum adalah mencari baris dengan grep, membersihkan teks dengan sed, lalu merangkum dengan awk. Contoh:
grep "ERROR" aplikasi.log | sed 's/ERROR/ERR/g' | awk '{print $1, $NF}'
Perintah ini mencari baris ERROR, mengganti kata ERROR menjadi ERR, lalu menampilkan kolom pertama dan kolom terakhir. Pipa membuat setiap alat fokus pada satu tugas. Hasilnya lebih mudah dibaca dan diuji langkah demi langkah.
Saat membangun alur kerja, jalankan satu perintah terlebih dahulu, periksa hasilnya, lalu tambahkan perintah berikutnya. Cara ini membantu menemukan kesalahan pola atau kolom. Untuk pembelajaran lebih lanjut, kalilinux.net dan kalilinux.info menyediakan materi lanjutan tentang baris perintah Linux yang bisa dijadikan referensi.
grep, sed, dan awk tetap relevan karena sederhana, cepat, dan tersedia di banyak sistem Linux. Mulailah dari pola sederhana, cadangkan berkas sebelum mengubah, dan latih pada data milik sendiri. Dengan konsistensi, tiga alat ini menjadi kebiasaan kerja yang efisien dan aman.

