12 Contoh Praktis dari Perintah Linux Grep

12 Contoh Praktis dari Perintah Linux Grep

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

grep adalah pencari pola file yang kuat yang dilengkapi dengan 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 dan Mint] $ sudo yum menginstal grep [on Rhel/centos/fedora Dan Linux Rocky/Almalinux] $ sudo emerge -se sys -apps/grep [on Gentoo Linux] $ sudo apk tambahkan grep [on Alpine Linux] $ sudo pacman -s grep [on Arch Linux] $ sudo zypper menginstal grep [on OpenSuse] 

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

1. Cari dan temukan file di Linux

Katakanlah Anda baru saja menginstal salinan baru yang baru Ubuntu di mesin Anda dan yang akan Anda berikan Python Scripting tembakan.

Anda telah menjelajahi web mencari tutorial, tetapi Anda melihat bahwa ada dua versi berbeda dari Python digunakan, dan Anda tidak tahu versi python mana yang diinstal pada ubuntu oleh penginstal, atau jika menginstal modul apa pun.

Cukup jalankan perintah dpkg berikut dengan grep seperti yang ditunjukkan:

# dpkg -l | grep -i python
Menemukan file dengan perintah grep
II LIBPYTHON3-STDLIB: AMD64 3.8.2-0ubuntu2 AMD64 Bahasa berorientasi objek tingkat tinggi interaktif (versi python3 default) II libpython3.8: AMD64 3.8.10-0ubuntu1 ~ 20.04.5 AMD64 Pustaka Runtime Python Shared (Versi 3.8) II libpython3.8-Minimal: AMD64 3.8.10-0ubuntu1 ~ 20.04.5 AMD64 Subset Minimal dari Bahasa Python (Versi 3.8) II libpython3.8-STDLIB: AMD64 3.8.10-0ubuntu1 ~ 20.04.5 AMD64 Bahasa Berorientasi Objek Tingkat Tinggi Interaktif (Perpustakaan Standar, Versi 3.8) II Python-apt-Common 2.0.0ubuntu0.20.04.8 semua antarmuka Python ke libapt-pkg (lokal) II python3 3.8.2-0ubuntu2 AMD64 Bahasa berorientasi objek tingkat tinggi interaktif (versi python3 default) II Python3-Apport 2.20.11-0ubuntu27.24 Perpustakaan Python 3 untuk Penanganan Laporan Kecelakaan Apport II Python3-apt 2.0.0ubuntu0.20.04.8 AMD64 Python 3 Antarmuka ke Libapt-Pkg II Python3-Aptdaemon 1.1.1+BZR982-0UBUNTU32.3 semua modul Python 3 untuk server dan klien Aptdaemon II python3-aptdaemon.GTK3WIDGETS 1.1.1+BZR982-0UBUNTU32.3 semua widget Python 3 GTK+ 3 untuk menjalankan klien aptdaemon II python3-blinker 1.4+DFSG1-0.3ubuntu1 Semua yang cepat dan sederhana, objek-ke-objek dan siaran Signaling Library II Python3-Brlapi: AMD64 6.0+DFSG -4UBUNTU6 AMD64 Akses tampilan Braille melalui BRLTTY - Bindings Python3… 

Pertama, kami berlari dpkg -l, Daftar mana yang diinstal *.Deb Paket di sistem Anda. Kedua, kami menyalakan output itu grep -i Python, yang hanya menyatakan "pergi ke grep dan menyaring dan mengembalikan semuanya dengan 'Python'Di dalamnya."

Itu -Saya opsi ada untuk mengabaikan kasus, seperti grep sensitif terhadap kasus. Menggunakan -Saya Pilihan adalah kebiasaan yang baik untuk masuk kecuali, tentu saja, Anda mencoba untuk melakukan pencarian yang lebih spesifik.

2. Cari dan filter file di Linux

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

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

Jiwa yang baik yang membalas Anda telah meminta Anda untuk memposting isi Anda /etc/apache2/apache2.conf mengajukan. Bukankah lebih mudah bagi Anda, pria yang membantu Anda, dan semua orang membacanya jika Anda bisa menghapus semua baris yang dikomentari? Nah, Anda bisa! Jalankan saja ini:

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

Itu -v opsi memberi tahu grep untuk membalikkan outputnya, artinya alih -alih mencetak garis yang cocok, lakukan sebaliknya dan cetak semua baris yang tidak cocok dengan ekspresi, dalam hal ini, # baris berkomentar.

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

Cetak konten file dengan mengecualikan komentar dan baris kosong
Defaultruntimedir $ aPache_run_dir pidfile $ apache_pid_file timeout 300 Keepalive on maxeepaliveRequests 100 KeepaliveTimeOut 5 pengguna $ apache_run_user grup $ apache_run_groups ever -everLOOKS $ apache apache apache_run_groups evorLookUpup.Log Logglevel Warn termasuk mods-enabled/*.beban termasuk mods yang diaktifkan/*.conf termasuk port.Opsi conf mengikuti tautan Alloverride tidak ada yang perlu ditolak semua  

3. Temukan semua .file mp3 di linux

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

Anda ingin menemukan semua *.mp3 file dari artis Jayz, Tapi Anda tidak ingin trek remix. Menggunakan sebuah temukan perintah dengan beberapa grep Pipa akan melakukan trik:

# menemukan . -nama “*.mp3 ”| grep -i jayz | grep -vi "remix" 

Dalam contoh ini, kami menggunakan menemukan untuk mencetak semua file dengan a *.mp3 ekstensi, menyalurkannya ke grep -i Untuk memfilter dan mencetak semua file dengan namanya "Jayz”Dan kemudian pipa lain untuk grep -vi yang memfilter dan tidak mencetak semua nama file dengan string (dalam hal apa pun) "remix".

[Anda mungkin juga menyukai: 35 Contoh Praktis dari Linux Find Command]

4. Tampilkan jumlah baris sebelum atau sesudah string pencarian

Beberapa pilihan lain adalah -A Dan -B sakelar, yang menampilkan garis yang cocok dan jumlah baris yang datang sebelum atau sesudah string pencarian.

Sedangkan halaman pria memberikan penjelasan yang lebih rinci, saya merasa paling mudah untuk mengingat opsi sebagai -A = setelah, Dan -B = sebelum:

# ifconfig | grep -a 4 inet # ifconfig | grep -b 2 up 
Cetak jumlah baris sebelum dan sesudah

5. Mencetak jumlah baris di sekitar kecocokan

The Grep's -C Opsi serupa, tetapi alih -alih mencetak garis yang datang baik sebelum atau sesudah string, ia mencetak garis di kedua arah:

# ifconfig | grep -c 2 lo Kesalahan TX 0 DAPATKAN 0 Overruns 0 Carrier 0 Collision 0 LO: Flags = 73 MTU 65536 INET 127.0.0.1 Netmask 255.0.0.0 inet6 :: 1 awalan 128 scopeid 0x10 loop txqueuelen 1000 (loopback lokal) paket rx 15314 byte 1593769 (1.5 MB) Kesalahan RX 0 DAPATKAN 0 Overruns 0 Frame 0 

6. Hitung jumlah pertandingan

Mirip dengan perpipaan a grep Opsi String to Word (perintah WC) GREP dapat melakukan hal yang sama untuk Anda:

# ifconfig | grep -c inet6

7. Cari file dengan string yang diberikan di Linux

Itu -N opsi untuk grep sangat berguna saat men -debug file selama kesalahan kompilasi. Ini menampilkan nomor baris dalam file string pencarian yang diberikan:

# GREP -N "Main" Setup.py

8. Cari string secara rekursif di semua direktori

Jika Anda ingin mencari string di direktori saat ini bersama dengan semua subdirektori, Anda dapat menentukan -R Opsi untuk mencari secara rekursif:

# grep -r "fungsi" * 

9. Cari seluruh polanya

Melewati -w opsi untuk grep mencari seluruh pola yang ada di string. Misalnya, menggunakan:

# ifconfig | grep -w "running"

Akan mencetak garis yang berisi pola dalam kutipan. Di sisi lain, jika Anda mencoba:

# ifconfig | grep -w "run"
Temukan seluruh pola

Tidak ada yang akan dikembalikan karena kami tidak mencari pola, tetapi seluruh kata.

10. Cari string di file gzipp

Layak yang disebutkan adalah turunan Grep. Yang pertama adalah zgrep, yang, mirip dengan zcat, adalah untuk digunakan Gzip file. Dibutuhkan opsi yang sama seperti grep dan digunakan dengan cara yang sama:

# zgrep -i error/var/log/syslog.2.GZ 
Pencarian string dalam file gzipp

11. Cocokkan ekspresi reguler dalam file

Perintah egrep adalah turunan lain yang merupakan singkatan dari “Ekspresi reguler global yang diperluas". Itu mengenali meta-karakter ekspresi tambahan seperti itu pada + ? | Dan ().

[Anda mungkin juga suka: apa perbedaan antara grep, egrep, dan fgrep di linux? ]

Egrep sangat berguna untuk mencari file sumber, dan potongan kode lainnya, jika perlu muncul. Itu bisa dipanggil dari reguler grep dengan menentukan -E pilihan.

# grep -e 

12. Cari string pola tetap

Itu fgrep Mencari file atau daftar file untuk string pola tetap. Itu sama dengan grep -f. Cara Umum untuk Menggunakan fgrep adalah untuk meneruskan file pola untuk itu:

# fgrep -f file_full_of_patterns.txt file_to_search.txt

Ini hanya titik awal dengan grep, Tapi seperti yang mungkin bisa Anda lihat, itu sangat berharga untuk berbagai tujuan. Selain dari perintah satu baris sederhana yang telah kami terapkan, grep dapat digunakan untuk menulis yang kuat cron pekerjaan, dan kuat skrip shell, untuk permulaan.

[Anda mungkin juga menyukai: 11 perintah Linux 'Grep' canggih di kelas karakter dan ekspresi braket]

Jadilah kreatif, bereksperimen dengan opsi di Halaman Manusia, dan datang dengan ekspresi grep yang melayani tujuan Anda sendiri!