Cara mencari semua fail dengan teks tertentu menggunakan shell linux

Cara mencari semua fail dengan teks tertentu menggunakan shell linux

Objektif

Artikel berikut memberikan beberapa petua berguna mengenai cara mencari semua fail dalam mana-mana direktori tertentu atau keseluruhan sistem fail yang mengandungi perkataan atau rentetan tertentu.

Kesukaran

Mudah

Konvensyen

  • # - Memerlukan arahan Linux yang diberikan untuk dilaksanakan dengan keistimewaan akar sama ada secara langsung sebagai pengguna root atau dengan menggunakan sudo perintah
  • $ - Memerlukan arahan Linux yang diberikan sebagai pengguna yang tidak layak

Contoh

Cari semua fail dengan rentetan tertentu yang tidak rekursif

Contoh arahan pertama akan mencari rentetan regangan dalam semua fail dalam /dan lain-lain/ Direktori semasa tidak termasuk mana-mana sub-direktori:

# grep -s regangan/etc/*/etc/os-release: pretty_name = "debian gnu/linux 9 (stretch)"/etc/os-release: version = "9 (stretch)" 

The -s Pilihan GREP akan menindas mesej ralat mengenai fail yang tidak ada atau tidak boleh dibaca. Output menunjukkan nama fail serta mencetak garis sebenar yang mengandungi rentetan yang diminta.



Cari semua fail dengan rentetan tertentu secara rekursif

Perintah di atas ditinggalkan semua sub-direktori. Untuk mencari bermakna rekursif untuk melintasi semua sub-direktori. Perintah Linux berikut akan mencari rentetan regangan dalam semua fail dalam /dan lain-lain/ Direktori termasuk semua sub-direktori:

# grep -r stretch/etc/*/etc/apt/sumber.Senarai:# Deb Cdrom: [Debian GNU/Linux Ujian _Stretch_-Snapshot rasmi AMD64 Netinst Binary-1 20170109-05: 56]/Stretch Main/etc/Apt/Sumber.Senarai: #deb cdrom: [Debian GNU/Linux Ujian _Stretch_-Snapshot rasmi AMD64 Netinst Binary-1 20170109-05: 56]/Stretch Main/etc/Apt/Sumber.Senarai: Deb http: // ftp.au.Debian.org/debian/stretch utama/etc/apt/sumber.Senarai: deb-src http: // ftp.au.Debian.org/debian/stretch utama/etc/apt/sumber.Senarai: Deb http: // keselamatan.Debian.Org/Debian-Security Stretch/Updates Utama/etc/Apt/Sumber.Senarai: Deb-Src http: // keselamatan.Debian.regangan/debian-security-security regangan utama/etc/kamus-komando/kata-kata: backstretch/etc/kamus-nomon/kata-kata: backstretch/etc/dictionaries-common/words: backstretches/etc/dictionaries-common/words: Homestret/homestretch/ dan lain-lain/Kamus-Kata/Kata-kata: Homestretch's/etc/Dictionaries-Common/Words: Homestretches/etc/Dictionaries-Common/Words: Outstretch/etc/Dictionaries-Common/Words: Outstretched/etc/Dictionaries-Common/Words: Outstretches/Outstretches/ dan lain-lain/Kamus-Kata/Kata dan lain-lain/Kamus-Kata/Kata dll/kamus-umum/perkataan:peregangan/etc/kamus-umum/kata-kata: Stretchy/etc/grub.D/00_HEADER: latar belakang_image -m stretch 'make_system_path_relative_to_its_root "$ grub_background"'/etc/os-release: pretty_name = "debian gnu/linux 9 (stretch) 


Cari semua fail yang mengandungi perkataan tertentu

Di atas grep Contoh Perintah menyenaraikan semua fail yang mengandungi rentetan regangan. Bermaksud garis dengan membentang, diregangkan dan lain-lain. juga ditunjukkan. Gunakan Grep -w pilihan untuk menunjukkan hanya perkataan tertentu:

# grep -rw regangan/etc/*/etc/apt/sumber.Senarai:# Deb Cdrom: [Debian GNU/Linux Ujian _Stretch_-Snapshot rasmi AMD64 Netinst Binary-1 20170109-05: 56]/Stretch Main/etc/Apt/Sumber.Senarai: #deb cdrom: [Debian GNU/Linux Ujian _Stretch_-Snapshot rasmi AMD64 Netinst Binary-1 20170109-05: 56]/Stretch Main/etc/Apt/Sumber.Senarai: Deb http: // ftp.au.Debian.org/debian/stretch utama/etc/apt/sumber.Senarai: deb-src http: // ftp.au.Debian.org/debian/stretch utama/etc/apt/sumber.Senarai: Deb http: // keselamatan.Debian.Org/Debian-Security Stretch/Updates Utama/etc/Apt/Sumber.Senarai: Deb-Src http: // keselamatan.Debian.Org/Debian-Security Stretch/Updates Utama/etc/Dictionaries-Common/Words: Stretch/etc/Dictionaries-Common/Words: Stretch's/etc/Grub.D/00_HEADER: latar belakang_image -m stretch 'make_system_path_relative_to_its_root "$ grub_background"'/etc/os-release: pretty_name = "debian gnu/linux 9 (stretch) 

Senaraikan hanya nama fail yang mengandungi teks tertentu

Perintah di atas boleh menghasilkan output yang tidak perlu. Contoh seterusnya hanya akan menunjukkan semua nama fail yang mengandungi rentetan regangan dalam /dan lain-lain/ Direktori secara rekursif:

# grep -rl regangan/etc/*/etc/apt/sumber.Senarai/etc/kamus-umum/perkataan/etc/grub.d/00_header/etc/OS-rilease 

Lakukan carian kes-insensitif

Semua carian adalah secara lalai kes sensitif yang bermaksud bahawa mencari rentetan regangan hanya akan menunjukkan fail yang mengandungi huruf besar dan huruf kecil yang tepat. Dengan menggunakan grep -i Pilihan Perintah juga akan menyenaraikan sebarang baris yang mengandungi Regangan, Regangan, Regangan dan lain-lain., Oleh itu, untuk melakukan carian yang tidak sensitif.

# grep -ril regangan/etc/*/etc/apt/sumber.Senarai/etc/kamus-umum/lalai.hash/etc/kamus-umum/perkataan/etc/grub.d/00_header/etc/OS-rilease 


Sertakan atau tidak termasuk nama fail tertentu dari carian

Menggunakan grep Perintah juga mungkin untuk memasukkan hanya fail tertentu sebagai sebahagian daripada carian. Contohnya kami hanya ingin mencari teks/rentetan tertentu dalam fail konfigurasi dengan lanjutan .Conf. Contoh seterusnya akan menemui semua fail dengan sambungan .Conf dalam /dan lain-lain Direktori yang mengandungi rentetan bash:

# grep -ril bash /etc /*.conf atau # grep -ril -termasuk = \*.conf bash /etc /* /etc /adduser.Conf 

Begitu juga, menggunakan --tidak termasuk Pilihan kita boleh mengecualikan sebarang nama fail tertentu:

# grep -ril --exclude = \*.conf bash/etc/*/etc/alternatif/paparan/etc/alternatif/vim/etc/alternatif/vi/etc/alternatif/vimdiff/etc/alternatif/rvim/etc/alternatif/ex/etc/alternatif/rview/etc/etc /bash.bashrc /etc /bash_completion.d/grub/etc/cron.harian/apt-compat/etc/cron.harian/exim4-base/etc/kamus-common/lalai.hash/etc/kamus-umum/kata/etc/inputrc/etc/passwd/etc/passwd-/etc/profil/etc/shells/etc/skel/.profil/etc/skel/.bashrc/etc/skel/.BASH_LOGOUT 

Tidak termasuk direktori tertentu dari carian

Sama seperti fail grep juga boleh mengecualikan direktori tertentu dari carian. Gunakan --tidak termasuk-DIR pilihan untuk mengecualikan direktori dari carian. Contoh carian berikut akan menemui semua fail yang mengandungi rentetan regangan dalam /dan lain-lain direktori dan tidak termasuk /etc/grub.d dari carian:

# grep --exclude-dir =/etc/grub.d -rwl regangan/etc/*/etc/apt/sumber.Senarai/etc/kamus-nada/kata/etc/os-release 

Paparkan nombor baris yang mengandungi rentetan yang dicari

Dengan menggunakan -n Opsyen GREP juga akan memberikan maklumat mengenai nombor baris di mana rentetan tertentu dijumpai:

# grep -rni bash /etc /*.conf /etc /adduser.Conf: 6: dshell =/bin/bash 

Cari semua fail yang tidak mengandungi rentetan tertentu

Contoh terakhir akan digunakan -v Pilihan untuk menyenaraikan semua fail yang tidak mengandungi kata kunci tertentu. Contohnya carian berikut akan menyenaraikan semua fail dalam /dan lain-lain/ direktori yang tidak mengandungi tali regangan:

# grep -rlv stretch /etc /* 

Tutorial Linux Berkaitan:

  • Perkara yang hendak dipasang di Ubuntu 20.04
  • Perintah Linux: Top 20 Perintah Paling Penting yang Anda Perlu ..
  • Perintah Linux Asas
  • Cara mencari rentetan atau teks dalam fail di linux
  • Cara betul -betul mengasyikkan teks dalam skrip bash
  • Cari semua fail yang mengandungi teks tertentu
  • Perkara yang perlu dilakukan setelah memasang ubuntu 20.04 Focal Fossa Linux
  • Cara mencetak pokok direktori menggunakan linux
  • Contoh Tips dan Trik Perintah Bash Berguna - Bahagian 4
  • Contoh Petua dan Trik Perintah Bash Berguna - Bahagian 1