Pelajaran modul (2/2)
Saluran pipa dan filter (grep dan |)
Salah satu fitur paling canggih dari baris perintah Linux adalah kemampuan untuk menghubungkan perintah yang berbeda sehingga keluaran dari satu perintah menjadi masukan untuk perintah berikutnya. Teknik ini dilakukan dengan menggunakan pipelines dan biasanya dipasangkan dengan perintah pemfilteran teks grep.
Memfilter Teks: grep
Perintah grep (Global Regular Expression Print) mencari string teks tertentu dalam satu atau lebih file dan mencetak baris yang cocok:
grep "string" [file_name]Opsi Berguna untuk grep
grep -i "error" server.log: Melakukan penelusuran tidak peka huruf besar-kecil (mengabaikan perbedaan antara huruf besar dan kecil, menemukan "Error", "error", atau "ERROR").grep -n "connection" server.log: Menampilkan nomor baris beserta baris yang cocok.grep -v "INFO" server.log: Membalikkan pencarian, hanya menampilkan baris yang tidak berisi kata kunci yang ditentukan.
Perintah Rangkaian: Saluran Pipa |
Operator saluran pipa diwakili oleh bilah vertikal |. Ia mengirimkan output standar dari perintah di sebelah kiri langsung ke input standar dari perintah di sebelah kanan:
[command1] | [command2]Misalnya, jika file log berukuran besar dan Anda ingin mencari kata tertentu tanpa mencetak seluruh file, Anda dapat menggabungkan cat dan grep:
cat logs/server.log | grep ERRORIni membaca seluruh file server.log dengan cat, namun alih-alih mencetaknya ke layar, ia menyalurkan aliran ke grep, yang memfilter dan hanya menampilkan baris yang berisi kata "ERROR".
Contoh Penggunaan dan Kesalahan Umum
Jika Anda mencari kata dengan huruf kecil (misalnya "posting") dalam file yang hanya memuat kata tersebut dalam huruf besar (misalnya "POST"), grep tidak akan menghasilkan apa pun:
grep "post" logs/access.log
# Output: (no results, search is case-sensitive by default)Untuk menemukan garis apa pun hurufnya, gunakan tanda -i:
grep -i "post" logs/access.log
# Output:
# 127.0.0.1 - - [22/May/2026:10:10:00 +0000] "POST /login HTTP/1.1" 401 234Jika file yang ditentukan tidak ada, grep akan mengembalikan kesalahan:
grep "ERROR" nonexistent_file.log
# Output:
# grep: nonexistent_file.log: No such file or directoryCobalah sendiri
Latihan 1: Mencari kesalahan dalam file log
Filter file 'logs/server.log' untuk mengekstrak dan hanya menampilkan baris yang mengandung kata 'ERROR' (peka huruf besar-kecil).
Tunjukkan petunjuk
Gunakan perintah grep diikuti dengan kata yang akan dicari dan jalur file.
Solusi tersedia setelah 3 upaya
Latihan 2: Saluran pipa dan filter
Gunakan perintah cat untuk membaca file 'logs/server.log' dan menyalurkan (|) outputnya ke perintah grep untuk memfilter dan mencetak hanya baris yang berisi kata 'PERINGATAN'.
Tunjukkan petunjuk
Hubungkan cat logs/server.log ke grep PERINGATAN menggunakan pipa '|' karakter.
Solusi tersedia setelah 3 upaya
Latihan 3: Pencarian tidak peka huruf besar-kecil
Cari semua baris yang mengandung kata 'post' (baik huruf besar atau kecil) di file 'logs/access.log' menggunakan flag grep yang sesuai.
Tunjukkan petunjuk
Gunakan grep dengan opsi -i untuk mengabaikan sensitivitas huruf besar-kecil.
Solusi tersedia setelah 3 upaya