Ngulik Linux

Cara Menggunakan Grep Command di Linux

Grep command atau perintah grep merupakan bagian dari sistem operasi Unix dan dikenal sebagai salah satu tool penting yang serba guna. Fungsi dari tool ini adalah untuk melakukan pencarian sebuah pattern dalam file teks yang telah dibuat. Dengan kata lain, penggunaan command grep mempermudah Anda dalam mencari kata atau pattern dan satu atau lebih line yang kemudian akan ditampilkan.

Mencari kata pada suatu file

grep keyword nama_file

grep 07/14/2020:12:20:30 access_log

Mencari Kata Tanpa Memerhatikan Besar Kecilnya Huruf

grep -i keyword nama_file

grep -i PAsswOrdstrengTH access_log

Target Query untuk Mengetahui Jumlah Kata

grep -c keyword nama_file

grep -c admdoni access_log

Mencari dua Keyword

cat nama_file | grep keyword1 | grep keyword2

cat access_log | grep 2020:09:51:30 | grep passwordstrength

contoh lain

grep 'fatal\|error\|critical' /var/log/nginx/error.log

Mencari Sebuah Kata di Kumpulan File

grep keyword /target_directory

grep 2020:09:51:30 /usr/local/cpanel/logs/*

Atau jika Anda ingin melakukan pencarian kata pada direcotry secara recursive dan menampilkan line number kata tersebut maka bisa menggunakan parameter grep -inr

Grep Tampilkan Hanya Nama File

Untuk menekan output grep default dan hanya mencetak nama file yang berisi pola yang cocok Anda dapat menggunakan opsi -l (atau --files-with-matches).

Misalnya untuk mencari melalui semua file yang diakhiri dengan .conf di direktori kerja saat ini dan hanya mencetak nama-nama file yang berisi tipe string example.com:

grep -l example.com *.conf

Outputnya akan terlihat seperti ini:

tmux.conf
haproxy.conf

Opsi -l biasanya digunakan dalam kombinasi dengan opsi rekursif atau -R:

grep -Rl example.com /tmp

Grep Regular Expression

GNU Grep memiliki dua set fitur regular expression, Basic dan Extended. Secara default Grep menginterpretasikan pola sebagai regular expression Basic, untuk beralih ke regular expression yang Extended, Anda perlu menggunakan opsi -E .

Ketika digunakan dalam mode regular expression basic, semua karakter lain kecuali metakarakter, sebenarnya adalah regular expression yang cocok dengan dirinya sendiri. Di bawah ini adalah daftar karakter meta yang paling umum digunakan:

  • Gunakan simbol ^ (caret) untuk mencocokkan ekspresi pada awal baris. Berikut ini, contoh string ^banteng hanya akan cocok kata itu ada di awal baris.
    grep "^banteng" file.txt
  • Gunakan simbol $ (dollar) untuk mencocokkan ekspresi di akhir baris. Pada contoh berikut, string anoa$ hanya akan cocok jika kata itu terjadi di akhir baris.
    grep "banteng$" file.txt
  • Gunakan simbol . (titik) untuk mencocokkan karakter tunggal apa pun. Misalnya, untuk mencocokkan apa pun yang dimulai dengan ban kemudian memiliki dua karakter dan diakhiri dengan string ng, Anda dapat menggunakan pola berikut:
    grep "ban..ng" file.txt
  • Gunakan [ ] untuk mencocokkan karakter tunggal apa saja yang ada di dalam tanda kurung. Misalnya, temukan baris yang berisi accept atau accent, Anda dapat menggunakan pola berikut:
    grep "acce[np]t" file.txt
  • Gunakan [] untuk mencocokkan setiap karakter tunggal yang terlampir di dalam tanda kurung. Pola berikut akan cocok dengan kombinasi string yang mengandung co (huruf_apapun_kecuali_l) a, seperti coca, cobalt dan sebagainya, tetapi tidak akan cocok dengan baris yang mengandung kata cola,
    grep "co[^l]a" file.txt

Untuk menghindari makna khusus dari karakter berikutnya, gunakan simbol \ (garis miring terbalik).

Grep Extended Regular Expression

Untuk menginterpretasikan pola sebagai extended regular expression, gunakan opsi -E (atau --extended-regexp). Extended regular expressions mencakup semua meta-karakter dasar, bersama dengan meta-karakter tambahan untuk membuat pola pencarian yang lebih kompleks dan kuat. Di bawah ini adalah beberapa contoh:

  • Cocokkan dan ekstrak semua alamat email dari file yang diberikan:
    grep -E -o "\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,6}\b" file.txt
  • Cocokkan dan ekstrak semua alamat IP yang valid dari file yang diberikan:
    grep -E -o '(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)' file.txt

Opsi -o digunakan untuk mencetak hanya string yang cocok.

Grep Print Baris Sebelum Kecocokan

Untuk mencetak sejumlah baris tertentu sebelum mencocokkan baris, gunakan opsi -B (atau --before-context).

Misalnya, untuk menampilkan 5 baris konteks pertama sebelum mencocokkan baris, Anda dapat menggunakan perintah berikut:

grep -B 5 root /etc/passwd

Grep Print Baris setelah Kecocokan

Untuk mencetak sejumlah baris tertentu setelah ada kecocokan, gunakan opsi -A (atau --after-context).

Misalnya untuk menampilkan 5 baris dari konteks setelah baris yang cocok, Anda dapat menggunakan perintah berikut

grep -A 5 root /etc/passwd

 

Leave a Response