Saya ingin membuat daftar file secara rekursif dan unik yang berisi kata yang diberikan.
Contoh : Memeriksa kata 'cek', yang biasa saya lakukan adalah grep
$ grep check * -R
Tetapi karena ada banyak kemunculan kata ini, saya mendapatkan banyak hasil. Jadi saya hanya perlu daftar nama file yang berisi kata pencarian yang diberikan. Saya kira beberapa trik dengan find
dan xargs
akan cukup di sini, tetapi tidak yakin.
Ada ide?
find
grep
file-search
mtk
sumber
sumber
grep -rl "text to find" "/usr/share"
dan itu bekerja dengan baik!Anda mungkin tidak ingin menggunakan
-R
opsi yang dengan versi modern GNUgrep
mengikuti symlink ketika turun direktori. Gunakan-r
opsi sebagai gantinya di sana yang sejak versi 2.12 (April 2012) tidak lagi mengikuti symlinks.Jika grep Anda bukan GNU, atau lebih tua dari versi 2.12, atau jika Anda memerlukan kode Anda untuk dibawa-bawa ke sistem GNU yang tidak berdarah, gunakan
find
perintah di atas.Jika tidak, Anda dapat melakukan:
Jangan gunakan
*
(karena itu akan menghilangkan file tersembunyi di direktori saat ini (dan hanya di direktori saat ini) dan akan menyebabkan masalah untuk file yang namanya dimulai dengan a-
), hindari meneruskan opsi setelah argumen karena itu tidak dijamin untuk bekerja tergantung pada lingkungan dan tidak portabel.sumber
Coba ini:
Adapun
grep
bendera ...-c
akan mengembalikan nama file diikuti oleh: dan nomor yang menunjukkan berapa kali string pencarian muncul dalam file yang diberikan.-v
akan mengambil output darigrep
pencarian pertama , memfilter file dengan hasil nol, dan hanya mencetak file dengan hasil tidak nol.sumber
:0
. Lebih baik dilakukangrep -v ':0$'
. Bahkan itu akan tercekik pada nama path yang mengandung baris baru.grep -rin "whatToFind" locationToFInd
misal $ grep -rin "vihaan".
akan secara rekursif mencari dan mendaftarkan nama file dan baris yang sesuai dengan "vihaan" di dalamnya, "." merujuk ke direktori saat ini.
sumber
cari di direktori saat ini. Untuk mencari dari root, tentukan
/
bukan.
sumber
grep -lR "text-to-find" <where-to-find>
juga berfungsi dengan baik.misalnya, di
grep -lR "NAVIGATE" .
mana kita menemukan kataNAVIGATE
di.
dalam direktori saat ini.sumber
Memberi Anda daftar
.q
file berisi kata kuncitrim
sumber