Cara Menggunakan Perintah Grep di Linux [12 Contoh Berguna]


Pernahkah Anda dihadapkan dengan tugas mencari string atau pola tertentu dalam sebuah file, namun tidak tahu harus mulai mencari dari mana? Kalau begitu, inilah perintah grep untuk menyelamatkan!

grep adalah pencari pola file canggih yang tersedia di setiap distribusi Linux. Jika karena alasan apa pun, itu tidak diinstal pada sistem Anda, Anda dapat dengan mudah menginstalnya melalui manajer paket Anda seperti yang ditunjukkan.

sudo apt install grep         [On Debian, Ubuntu and Mint]
sudo yum install grep         [On RHEL/CentOS/Fedora and Rocky Linux/AlmaLinux]
sudo emerge -a sys-apps/grep  [On Gentoo Linux]
sudo apk add grep             [On Alpine Linux]
sudo pacman -S grep           [On Arch Linux]
sudo zypper install grep      [On OpenSUSE]    

Saya telah menemukan bahwa cara termudah untuk membuat kaki Anda basah dengan perintah grep adalah dengan langsung mempelajarinya dan menggunakan beberapa contoh dunia nyata.

1. Cari dan Temukan File di Linux

Katakanlah Anda baru saja menginstal salinan baru Ubuntu baru di mesin Anda dan Anda akan mencoba skrip Python.

Anda telah menjelajahi web untuk mencari tutorial, namun Anda melihat ada dua versi Python berbeda yang digunakan, dan Anda tidak tahu versi Python mana yang diinstal di Ubuntu oleh penginstal, atau jika memasang modul apa pun.

Cukup jalankan perintah dpkg berikut dengan grep seperti yang ditunjukkan:

dpkg -l | grep -i python

Pertama, kami menjalankan dpkg –l, yang berisi daftar paket *.deb yang terinstal di sistem Anda. Kedua, kami menyalurkan output tersebut ke grep -i python, yang hanya menyatakan “buka grep dan filter dan kembalikan semuanya dengan ‘python’ di dalamnya. ”

Opsi -i ada untuk mengabaikan huruf besar-kecil, karena grep peka huruf besar-kecil. Menggunakan opsi -i adalah kebiasaan yang baik kecuali, tentu saja, Anda mencoba melakukan pencarian yang lebih spesifik.

2. Cari dan Filter File di Linux

grep juga dapat digunakan untuk mencari dan memfilter dalam file individual atau beberapa file. Mari kita ambil skenario ini:

Anda mengalami masalah dengan Server Web Apache Anda, dan Anda telah menghubungi salah satu dari banyak forum luar biasa di internet untuk meminta bantuan.

Orang yang baik hati yang membalas Anda telah meminta Anda untuk memposting konten file /etc/apache2/apache2.conf Anda. Bukankah akan lebih mudah bagi Anda, orang yang membantu Anda, dan semua orang yang membacanya jika Anda dapat menghapus semua baris komentar? Ya, kamu bisa! Jalankan saja ini:

grep -v ^\# /etc/apache2/apache2.conf | grep .

Opsi -v memerintahkan grep untuk membalikkan keluarannya, artinya alih-alih mencetak garis yang cocok, lakukan yang sebaliknya dan cetak semua garis yang tidak cocok dengan ekspresi, dalam hal ini, baris komentar #.

Perhatikan bahwa kami juga menggunakan grep . di akhir untuk menyembunyikan output dari semua baris kosong. Dengan cara ini kita hanya melihat pengaturan konfigurasi di terminal kita.

3. Temukan semua File .mp3 di Linux

grep bisa sangat berguna untuk memfilter dari stdout. Misalnya, Anda memiliki seluruh folder yang penuh dengan file musik dalam berbagai format berbeda.

Anda ingin mencari semua file *.mp3 dari artis JayZ, namun Anda tidak ingin ada lagu yang di-remix. Menggunakan perintah find dengan beberapa pipa grep akan berhasil:

find . -name “*.mp3” | grep –i JayZ | grep –vi “remix”

Dalam contoh ini, kita menggunakan find untuk mencetak semua file dengan ekstensi *.mp3, menyalurkannya ke grep –i untuk memfilter keluar dan cetak semua file dengan nama “JayZ ” dan kemudian pipa lain ke grep –vi yang memfilter dan tidak mencetak semua nama file dengan string (dalam hal apa pun) “remix ”.

4. Menampilkan Jumlah Baris Sebelum atau Sesudah String Pencarian

Beberapa opsi lainnya adalah tombol -A dan -B, yang menampilkan baris yang cocok dan sejumlah baris yang muncul sebelum atau sesudah string pencarian.

Meskipun halaman manual memberikan penjelasan lebih rinci, saya merasa paling mudah mengingat opsi seperti -A=after, dan -B=< kuat>sebelum:

ifconfig | grep -A 4 inet
ifconfig | grep -B 2 UP

5. Mencetak Jumlah Garis di Sekitar Pertandingan

Opsi -C pada grep juga serupa, namun alih-alih mencetak baris yang muncul sebelum atau sesudah string, opsi ini malah mencetak baris dalam arah mana pun:

ifconfig | grep -C 2 lo

 TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 15314  bytes 1593769 (1.5 MB)
        RX errors 0  dropped 0  overruns 0  frame 0

6. Hitung Jumlah Kecocokan

Mirip dengan menyalurkan string grep ke jumlah kata (perintah wc), opsi bawaan grep dapat melakukan hal yang sama untuk Anda:

ifconfig | grep -c inet6

7. Cari File berdasarkan String yang Diberikan di Linux

Opsi –n untuk grep sangat berguna saat melakukan debug file selama kesalahan kompilasi. Ini menampilkan nomor baris dalam file dari string pencarian yang diberikan:

grep -n "main" setup.py

8. Mencari string secara Rekursif di semua Direktori

Jika Anda ingin mencari string di direktori saat ini beserta semua subdirektorinya, Anda dapat menentukan opsi –r untuk mencari secara rekursif:

grep -r “function” *

9. Cari Seluruh Pola

Meneruskan opsi -w ke grep mencari seluruh pola yang ada dalam string. Misalnya, menggunakan:

ifconfig | grep -w "RUNNING"

Akan mencetak baris yang berisi pola dalam tanda kutip. Di sisi lain, jika Anda mencoba:

ifconfig | grep -w "RUN"

Tidak ada yang akan dikembalikan karena kita tidak mencari polanya, tetapi keseluruhan kata.

10. Cari string di File Gzip

Yang patut disebutkan adalah turunan grep. Yang pertama adalah zgrep, yang mirip dengan zcat, digunakan pada file gzip. Dibutuhkan opsi yang sama seperti grep dan digunakan dengan cara yang sama:

zgrep -i error /var/log/syslog.2.gz

11. Cocokkan Ekspresi Reguler dalam File

Perintah egrep adalah turunan lain yang merupakan singkatan dari “Extracted Global Regular Expression ”. Ia mengenali meta-karakter ekspresi tambahan seperti at + ? | dan ().

Perintah egrep sangat berguna untuk mencari file sumber, dan potongan kode lainnya, jika diperlukan. Ini dapat dipanggil dari grep biasa dengan menentukan opsi -E.

grep -E

12. Cari String Pola Tetap

Perintah fgrep mencari file atau daftar file untuk string pola tetap. Ini sama dengan grep -F. Cara umum menggunakan fgrep adalah dengan meneruskan file pola ke dalamnya:

fgrep –f file_full_of_patterns.txt file_to_search.txt

Ini hanyalah titik awal dengan grep, namun seperti yang mungkin Anda lihat, ini sangat berharga untuk berbagai tujuan. Selain perintah satu baris sederhana yang telah kami terapkan, grep dapat digunakan untuk menulis tugas cron yang hebat, dan skrip shell yang kuat, untuk awal.

Jadilah kreatif, bereksperimenlah dengan opsi di halaman manual, dan buatlah ekspresi grep yang sesuai dengan tujuan Anda!