12 Contoh Praktikal Perintah Linux Grep

12 Contoh Praktikal Perintah Linux Grep

Adakah anda pernah berhadapan dengan tugas mencari rentetan atau corak tertentu dalam fail, namun tidak tahu di mana untuk mula mencari? Baiklah, inilah grep untuk menyelamatkan!

grep adalah pencari corak fail yang kuat yang dilengkapi pada setiap pengedaran Linux. Jika atas sebab apa pun, ia tidak dipasang pada sistem anda, anda boleh memasangnya dengan mudah melalui pengurus pakej anda seperti yang ditunjukkan.

$ sudo apt memasang grep [on Debian, Ubuntu dan Mint] $ sudo yum pasang grep [on RHEL/CENTOS/FEDORA dan Rocky Linux/Almalinux] $ sudo muncul -a sys -apps/grep [on Gentoo Linux] $ sudo apk tambah grep [on Alpine Linux] $ sudo pacman -s grep [on Arch Linux] $ sudo zyper Pasang grep [on Opensuse] 

Saya telah mendapati bahawa cara paling mudah untuk mendapatkan kaki anda basah dengan perintah grep hanya menyelam masuk dan menggunakan beberapa contoh dunia nyata.

1. Cari dan cari fail di Linux

Katakan bahawa anda baru sahaja memasang salinan baru yang baru Ubuntu di mesin anda dan yang akan anda berikan Python Skrip pukulan.

Anda telah menjelajahi web mencari tutorial, tetapi anda melihat bahawa terdapat dua versi yang berbeza Python digunakan, dan anda tidak tahu versi Python yang dipasang di Ubuntu oleh pemasang, atau jika ia memasang sebarang modul.

Cukup jalankan arahan DPKG berikut dengan grep seperti yang ditunjukkan:

# dpkg -l | grep -i python
Mencari fail dengan arahan grep
II libpython3-stdlib: AMD64 3.8.2-0ubuntu2 amd64 bahasa berorientasikan objek tinggi interaktif (versi python3 lalai) ii libpython3.8: AMD64 3.8.10-0ubuntu1 ~ 20.04.5 AMD64 Python Runtime Library (Versi 3.8) ii libpython3.8-Minimal: AMD64 3.8.10-0ubuntu1 ~ 20.04.5 AMD64 subset minimum bahasa Python (versi 3.8) ii libpython3.8-Stdlib: AMD64 3.8.10-0ubuntu1 ~ 20.04.5 AMD64 Bahasa Berorientasikan Objek Tinggi Interaktif (Perpustakaan Standard, Versi 3.8) II python-apt-common 2.0.0ubuntu0.20.04.8 Semua Antara Muka Python ke Libapt-Pkg (Locales) II Python3 3.8.2-0ubuntu2 AMD64 Bahasa Berorientasikan Objek Tinggi Interaktif (Versi Python3 Lalai) II Python3-Oport 2.20.11-0ubuntu27.24 All Python 3 Perpustakaan untuk Apport Crash Report Handling II Python3-AP 2.0.0ubuntu0.20.04.8 AMD64 PYTHON 3 antara muka ke LibapT-PKG II Python3-APTDAMON 1.1.1+bzr982-0ubuntu32.3 Semua modul Python 3 untuk pelayan dan pelanggan aptdaemon II python3-aptdaemon.GTK3Widgets 1.1.1+bzr982-0ubuntu32.3 Semua Python 3 GTK+ 3 Widget untuk menjalankan Aptdaemon Client II Python3-Blinker 1.4+DFSG1-0.3ubuntu1 semua objek yang cepat dan mudah objek dan penyiaran Perpustakaan II Python3-Brlapi: AMD64 6.0+DFSG -4UBUNTU6 AMD64 Braille Paparan Akses melalui Brltty - Python3 Bindings .. 

Pertama, kami berlari DPKG -L, senarai yang dipasang *.Deb bungkusan pada sistem anda. Kedua, kami mengosongkan output itu ke grep -i Python, yang hanya menyatakan "pergi ke grep dan menapis dan mengembalikan semuanya dengan 'python' di dalamnya."

The -i pilihan ada untuk mengabaikan kes, seperti grep adalah sensitif kes. Menggunakan -i Pilihan adalah tabiat yang baik untuk masuk ke dalam kecuali, tentu saja, anda cuba mencarinya.

2. Cari dan penapis fail di Linux

The grep juga boleh digunakan untuk mencari dan menapis dalam fail individu atau pelbagai fail. Mari ambil senario ini:

Anda menghadapi masalah dengan anda Pelayan web Apache, Dan anda telah sampai ke salah satu daripada banyak forum hebat di internet meminta bantuan.

Jiwa baik yang membalas anda telah meminta anda untuk menghantar kandungan anda /etc/apache2/apache2.Conf fail. Bukankah lebih mudah bagi anda, lelaki yang membantu anda, dan semua orang membacanya jika anda dapat mengeluarkan semua baris yang dikomentari? Baiklah, anda boleh! Jalankan ini:

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

The -v pilihan memberitahu grep Untuk membalikkan outputnya, yang bermaksud bahawa bukannya mencetak garis yang sepadan, lakukan sebaliknya dan cetak semua baris yang tidak sepadan dengan ungkapan, dalam kes ini, # baris mengulas.

Perhatikan bahawa kami juga menggunakan grep . pada akhirnya untuk menyembunyikan output semua garis kosong. Dengan cara ini kita hanya melihat tetapan konfigurasi di terminal kami.

Cetak kandungan fail dengan tidak termasuk komen dan baris kosong
Defaultruntimedir $ APACHE_RUN_DIR pidfile $ APACHE_PID_FILE timeout 300 Keepalive on maxKeepaliverequests 100 KeepaliveTimeout 5 user $ APACHE_RUN_USER.Log Loglevel Warn termasuk mods-enabled/*.Beban termasuk mods-enabled/*.conf termasuk pelabuhan.Pilihan Conf berikut  

3. Cari semua .fail mp3 di linux

The grep boleh sangat berguna untuk penapisan dari stdout. Contohnya, katakan bahawa anda mempunyai seluruh folder yang penuh dengan fail muzik dalam sekumpulan format yang berbeza.

Anda mahu mencari semua *.mp3 fail dari artis Jayz, Tetapi anda tidak mahu mana -mana trek remix. Menggunakan a Cari arahan dengan beberapa grep Paip akan melakukan silap mata:

# cari . -Nama "*.mp3 "| Grep -I Jayz | grep -vi "remix" 

Dalam contoh ini, kami menggunakan cari untuk mencetak semua fail dengan a *.mp3 lanjutan, paip ke grep -i untuk menapis dan mencetak semua fail dengan nama "Jayz"Dan kemudian paip lain ke grep -vi yang menapis dan tidak mencetak semua nama fail dengan rentetan (dalam apa jua keadaan) "remix".

[Anda mungkin juga suka: 35 Contoh Praktikal Linux Cari Perintah]

4. Paparkan bilangan baris sebelum atau selepas rentetan carian

Beberapa pilihan lagi ialah -A dan -B suis, yang memaparkan garis yang dipadankan dan bilangan baris sama ada sebelum atau selepas rentetan carian.

Walaupun halaman lelaki memberikan penjelasan yang lebih terperinci, saya merasa paling mudah untuk mengingati pilihan sebagai -A = selepas, dan -B = sebelumnya:

# ifconfig | grep -a 4 inet # ifconfig | grep -b 2 up 
Cetak nombor baris sebelum dan selepas rentetan

5. Mencetak bilangan baris di sekitar perlawanan

The Grep's -C Pilihan adalah sama, tetapi bukannya mencetak garis yang datang sama ada sebelum atau selepas rentetan, ia mencetak garis ke arah yang sama:

# ifconfig | grep -c 2 lo Kesalahan TX 0 Diturunkan 0 Overruns 0 Carrier 0 Perlanggaran 0 LO: Bendera = 73 MTU 65536 inet 127.0.0.1 Netmask 255.0.0.0 inet6 :: 1 prefixlen 128 scopeId 0x10 loop txqueuelen 1000 (loopback tempatan) paket rx 15314 bytes 1593769 (1.5 mb) rx kesilapan 0 jatuh 0 overruns 0 bingkai 0 

6. Hitung jumlah perlawanan

Sama dengan paip a grep String to Word Count (WC Command) Pilihan terbina dalam Grep boleh melakukan perkara yang sama untuk anda:

# ifconfig | grep -c inet6

7. Cari fail dengan rentetan yang diberikan di Linux

The -n pilihan untuk grep sangat berguna semasa debugging fail semasa kesilapan menyusun. Ia memaparkan nombor baris dalam fail rentetan carian yang diberikan:

# grep -n "utama" persediaan.py

8. Cari rentetan secara rekursif di semua direktori

Sekiranya anda ingin mencari rentetan dalam direktori semasa bersama dengan semua subdirektori, anda boleh menentukan -r Pilihan untuk mencari secara rekursif:

# grep -r "fungsi" * 

9. Cari keseluruhan corak

Lulus -w pilihan untuk mencari grep untuk keseluruhan corak yang ada dalam rentetan. Sebagai contoh, menggunakan:

# ifconfig | grep -w "berlari"

Akan mencetak garis yang mengandungi corak dalam sebut harga. Sebaliknya, jika anda mencuba:

# ifconfig | grep -w "lari"
Cari corak keseluruhan

Tidak ada yang akan dikembalikan kerana kita tidak mencari corak, tetapi keseluruhan perkataan.

10. Cari rentetan dalam fail gzipped

Layak disebutkan adalah derivatif grep. Yang pertama adalah Zgrep, yang, serupa dengan Zcat, adalah untuk digunakan pada gzipped fail. Ia memerlukan pilihan yang sama seperti grep dan digunakan dengan cara yang sama:

# zgrep -i ralat/var/log/syslog.2.Gz 
Rentetan cari dalam fail gzipped

11. Padankan ungkapan biasa dalam fail

Perintah Egrep adalah derivatif lain yang bermaksud "Ekspresi tetap global yang dilanjutkan". Ia mengiktiraf meta-akhbar ekspresi tambahan seperti itu pada + ? | dan ().

[Anda mungkin juga suka: Apa perbezaan antara Grep, Egrep, dan Fgrep di Linux? ]

Egrep sangat berguna untuk mencari fail sumber, dan kepingan kod lain, sekiranya keperluan timbul. Ia boleh dipanggil dari biasa grep dengan menyatakan -E pilihan.

# grep -e 

12. Cari rentetan corak tetap

The fgrep Cari fail atau senarai fail untuk rentetan corak tetap. Ia sama seperti grep -f. Cara biasa menggunakan fgrep adalah untuk lulus fail corak kepadanya:

# fgrep -f file_full_of_patterns.txt file_to_search.txt

Ini hanya titik permulaan dengan grep, Tetapi seperti yang anda mungkin dapat lihat, ia tidak ternilai untuk pelbagai tujuan. Selain daripada arahan satu baris sederhana yang telah kami laksanakan, grep boleh digunakan untuk menulis kuat Cron pekerjaan, dan teguh skrip shell, sebagai permulaan.

[Anda mungkin juga suka: 11 linux linux 'grep' perintah pada kelas watak dan ekspresi kurungan]

Kreatif, bereksperimen dengan pilihan di halaman lelaki, dan datang dengan Ekspresi Grep yang melayani tujuan anda sendiri!