Lompati ke konten utama
Modul 3 · Pelajaran 2 dari 27/11 dalam kursus~15 min
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:

Bash
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:

Bash
[command1] | [command2]

Misalnya, jika file log berukuran besar dan Anda ingin mencari kata tertentu tanpa mencetak seluruh file, Anda dapat menggabungkan cat dan grep:

Bash
cat logs/server.log | grep ERROR

Ini 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:

Bash
grep "post" logs/access.log
# Output: (no results, search is case-sensitive by default)

Untuk menemukan garis apa pun hurufnya, gunakan tanda -i:

Bash
grep -i "post" logs/access.log
# Output:
# 127.0.0.1 - - [22/May/2026:10:10:00 +0000] "POST /login HTTP/1.1" 401 234

Jika file yang ditentukan tidak ada, grep akan mengembalikan kesalahan:

Bash
grep "ERROR" nonexistent_file.log
# Output:
# grep: nonexistent_file.log: No such file or directory

Cobalah sendiri

Latihan 1: Mencari kesalahan dalam file log

Latihan#linux.m3.l2.e1
Upaya: 0Memuat…

Filter file 'logs/server.log' untuk mengekstrak dan hanya menampilkan baris yang mengandung kata 'ERROR' (peka huruf besar-kecil).

Memuat editor…
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

Latihan#linux.m3.l2.e2
Upaya: 0Memuat…

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'.

Memuat editor…
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

Latihan#linux.m3.l2.e3
Upaya: 0Memuat…

Cari semua baris yang mengandung kata 'post' (baik huruf besar atau kecil) di file 'logs/access.log' menggunakan flag grep yang sesuai.

Memuat editor…
Tunjukkan petunjuk

Gunakan grep dengan opsi -i untuk mengabaikan sensitivitas huruf besar-kecil.

Solusi tersedia setelah 3 upaya