Cara menemukan semua file dengan teks tertentu menggunakan linux shell

Cara menemukan semua file dengan teks tertentu menggunakan linux shell

Objektif

Artikel berikut memberikan beberapa tips berguna tentang cara menemukan semua file dalam direktori tertentu atau seluruh sistem file yang berisi kata atau string tertentu.

Kesulitan

MUDAH

Konvensi

  • # - mensyaratkan perintah linux yang diberikan untuk dieksekusi dengan hak istimewa root baik secara langsung sebagai pengguna root atau dengan menggunakan sudo memerintah
  • $ - mensyaratkan perintah Linux yang diberikan untuk dieksekusi sebagai pengguna biasa

Contoh

Temukan semua file dengan string tertentu non-rekursif

Contoh perintah pertama akan mencari string menggeliat Di semua file di dalam /dll/ Direktori saat mengecualikan sub-direktori apa pun:

# grep -s stretch/etc/*/etc/os-rilis: pretty_name = "debian gnu/linux 9 (peregangan)"/etc/os-rilis: versi = "9 (peregangan)" 

Itu -S Opsi GREP akan menekan pesan kesalahan tentang file yang tidak ada atau tidak dapat dibaca. Output menunjukkan nama file serta mencetak baris aktual yang berisi string yang diminta.



Temukan semua file dengan string tertentu secara rekursif

Perintah di atas menghilangkan semua sub-direktori. Untuk mencari secara rekursif berarti juga melintasi semua sub-direktori. Perintah Linux berikut akan mencari string menggeliat Di semua file di dalam /dll/ Direktori termasuk semua sub-direktori:

# grep -r peregangan/etc/*/etc/apt/sumber.Daftar:# Deb Cdrom: [Debian GNU/Linux Testing _stretch_-Snapshot resmi AMD64 NetInst Binary-1 20170109-05: 56]/Stretch Main/etc/apt/Sources.DAFTAR: #DEB CDROM: [Debian GNU/Linux Testing _stretch_-Snapshot resmi AMD64 NetInst Binary-1 20170109-05: 56]/Stretch Main/etc/apt/Sumber.Daftar: Deb http: // ftp.au.Debian.org/debian/peregangan utama/etc/apt/sumber.DAFTAR: DEB-SRC http: // ftp.au.Debian.org/debian/peregangan utama/etc/apt/sumber.Daftar: Deb http: // keamanan.Debian.org/debian-keamanan peregangan/memperbarui utama/etc/apt/sumber.Daftar: Deb-Src http: // keamanan.Debian.ORG/DEBIAN-SECURITY STRASH/UPDATE MAIN/ETC/DICTIONARY-COMMON/WORDS: backstretch/etc/kamus-common/Words: backstretch's/etc/dictionaries-common/Words: backstretches/etc/kamus-common/Words: homestretch/ etc/kamus-umum/kata-kata: homestretch's/etc/kamus-umum/kata-kata: homestretches/etc/kamus-common/kata-kata: outstretch/etc/kamus-common/kata: outstretched/etc/kamus-common/kata: outstretches/ ETC/Dictionaries-Common/Words: Outstretching/etc/Dictionaries-Common/Words: Stretch/etc/Dictionaries-Common/Words: Stretch's/etc/Dictionaries-Common/Words: Stretched/Etc/Dictionaries-Common/Words: tandu/ etc/kamus-umum/kata-kata: tandu/etc/kamus-umum/kata-kata: tandu/etc/kamus-umum/kata-kata: peregangan/etc/kamus-common/kata-kata: estat/etc/kamus-common/kata etc/kamus-umum/kata-kata:peregangan/etc/kamus-umum/kata-kata: melar/etc/grub.d/00_header: latar belakang_image -m peregangan 'make_system_path_relative_to_its_root "$ grub_background"'/etc/os-rilis: Pretty_name = "debian gnu/linux 9 (peregangan)"/etc/os-rilis: versi = "9 (peregangan)" 


Cari semua file yang berisi kata tertentu

Di atas grep Perintah Contoh Contoh daftar semua file yang berisi string menggeliat. Artinya kalimat dengan peregangan, membentang dll. juga ditampilkan. Gunakan Grep -w opsi untuk hanya menampilkan kata tertentu:

# grep -rw peregangan/etc/*/etc/apt/sumber.Daftar:# Deb Cdrom: [Debian GNU/Linux Testing _stretch_-Snapshot resmi AMD64 NetInst Binary-1 20170109-05: 56]/Stretch Main/etc/apt/Sources.DAFTAR: #DEB CDROM: [Debian GNU/Linux Testing _stretch_-Snapshot resmi AMD64 NetInst Binary-1 20170109-05: 56]/Stretch Main/etc/apt/Sumber.Daftar: Deb http: // ftp.au.Debian.org/debian/peregangan utama/etc/apt/sumber.DAFTAR: DEB-SRC http: // ftp.au.Debian.org/debian/peregangan utama/etc/apt/sumber.Daftar: Deb http: // keamanan.Debian.org/debian-keamanan peregangan/memperbarui utama/etc/apt/sumber.Daftar: Deb-Src http: // keamanan.Debian.ORG/DEBIAN-SECURITY STRASH/UPDATES MAIN/ETC/DICTIONARY-COMMON/Words: Stretch/etc/Dictionaries-Common/Words: Stretch's/etc/grub.d/00_header: latar belakang_image -m peregangan 'make_system_path_relative_to_its_root "$ grub_background"'/etc/os-rilis: Pretty_name = "debian gnu/linux 9 (peregangan)"/etc/os-rilis: versi = "9 (peregangan)" 

Daftar hanya nama file yang berisi teks tertentu

Perintah di atas dapat menghasilkan output yang tidak perlu. Contoh berikutnya hanya akan menampilkan semua nama file yang berisi string menggeliat di dalam /dll/ Direktori secara rekursif:

# grep -rl peregangan/etc/*/etc/apt/sumber.Daftar/etc/kamus-umum/kata/etc/grub.d/00_header/etc/os-rilis 

Lakukan pencarian yang tidak sensitif pada kasus

Semua pencarian secara default case sensitive yang berarti bahwa pencarian untuk string apa pun menggeliat hanya akan menampilkan file yang berisi huruf besar dan kecil yang tepat. Dengan menggunakan grep -Saya Opsi Perintah juga akan mencantumkan baris apa pun yang berisi Menggeliat, MENGGELIAT, Menggeliat dll., Oleh karena itu, untuk melakukan pencarian yang tidak sensitif pada kasus.

# grep -ril peregangan/etc/*/etc/apt/sumber.Daftar/etc/kamus-umum/default.hash/etc/kamus-common/words/etc/grub.d/00_header/etc/os-rilis 


Sertakan atau mengecualikan nama file tertentu dari pencarian

Menggunakan grep Perintah juga dimungkinkan untuk memasukkan hanya file spesifik sebagai bagian dari pencarian. Misalnya kami hanya ingin mencari teks/string tertentu dalam file konfigurasi dengan ekstensi .conf. Contoh berikutnya akan menemukan semua file dengan ekstensi .conf di dalam /dll Direktori yang berisi string pesta:

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

Demikian pula, menggunakan --mengecualikan Opsi Kami dapat mengecualikan nama file tertentu:

# grep -ril --exclude = \*.conf bash/etc/*/etc/alternatif/view/etc/alternatif/vim/etc/alternatif/vi/etc/alternatif/vimdiff/etc/alternatif/rvim/etc/alternatif/ex/etc/alternatif/rview/etc /pesta.Bashrc /etc /Bash_Completion.d/grub/etc/cron.harian/apt-compat/etc/cron.harian/exim4-base/etc/kamus-common/default.hash/etc/kamus-umum/kata/etc/inputrc/etc/passwd/etc/passwd-/etc/profile/etc/shells/etc/skel/.profil/etc/skel/.Bashrc/etc/skel/.Bash_logout 

Mengecualikan direktori spesifik dari pencarian

Sama seperti dengan file grep juga dapat mengecualikan direktori spesifik dari pencarian. Menggunakan --mengecualikan DIR opsi untuk mengecualikan direktori dari pencarian. Contoh pencarian berikut akan menemukan semua file yang berisi string menggeliat di dalam /dll direktori dan mengecualikan /etc/grub.D dari pencarian:

# grep --Exclude-Dir =/etc/grub.d -rwl peregangan/etc/*/etc/apt/sumber.Daftar/etc/kamus-umum/kata/etc/os-rilis 

Tampilkan nomor baris yang berisi string yang dicari

Dengan menggunakan -N Opsi GREP juga akan memberikan informasi mengenai nomor baris di mana string spesifik ditemukan:

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

Temukan semua file yang tidak berisi string tertentu

Contoh terakhir akan digunakan -v Opsi untuk mendaftar semua file yang tidak berisi kata kunci tertentu. Misalnya pencarian berikut akan mencantumkan semua file di dalam /dll/ direktori yang tidak mengandung string menggeliat:

# grep -rlv stretch /etc /* 

Tutorial Linux Terkait:

  • Hal -hal yang harus diinstal pada ubuntu 20.04
  • Perintah Linux: 20 perintah terpenting teratas yang Anda butuhkan untuk…
  • Perintah Linux Dasar
  • Cara menemukan string atau teks dalam file di linux
  • Cara dengan benar GREP untuk teks dalam skrip bash
  • Temukan semua file yang berisi teks tertentu
  • Hal -hal yang harus dilakukan setelah menginstal ubuntu 20.04 FOSSA FOSSA Linux
  • Cara mencetak pohon direktori menggunakan linux
  • Contoh dan trik Contoh Tips Baris Bash Berguna - Bagian 4
  • Contoh dan trik Contoh Tips Baris Bash Berguna - Bagian 1