Cara mencari semua fail dengan teks tertentu menggunakan shell linux
- 4743
- 161
- Marcus Kassulke
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
- « Cara Mengaktifkan dan Lumpuhkan Modul Php Curl dengan Apache di Ubuntu Linux
- Debian Apt-Get Jessie Sumber.senarai »