Saya ingin mencari string teks di semua file dalam direktori (dan bukan subdirektori-nya; Saya tahu -r
opsi melakukan itu, tetapi bukan itu yang saya inginkan).
Lari
grep "string" /path/to/dir
seharusnya bisa melakukan ini, saya sudah baca, tapi itu memberi saya kesalahan:
grep: dir: Adalah direktori
Selanjutnya, saya mencoba menjalankan
grep
beberapa file.grep "string" .bashrc .bash_aliases
bekerja dengan sempurna.grep "string" .bash*
berfungsi sebagaimana dimaksud juga.grep "string" *
memberi saya kesalahan:grep: data: Is a directory grep: Desktop: Is a directory grep: Documents: Is a directory grep: Downloads: Is a directory ...
Hanya kesalahan yang dicetak, saya tidak mendapatkan garis yang cocok. Saya mencoba menggunakan -s
opsi, tetapi tidak berhasil.
Jadi, pertanyaan saya:
Mengapa saya tidak bisa menggunakan
grep
direktori, seperti pada (1), padahal seharusnya saya bisa? Saya telah melihat hal itu dilakukan dalam banyak contoh di Internet.
Sunting : Ketika saya mengatakan "menggunakan grep pada direktori", maksud saya "cari di semua file dalam direktori tersebut tidak termasuk subdirektori". Saya percaya bahwa inilah yang dilakukan grep ketika Anda melewatkan direktori untuk menggantikan file. Apakah saya salah?Tolong beri saya penjelasan tentang cara kerjanya
grep
yang akan menjelaskan perilaku perintah di (2).
Sunting : Biarkan saya lebih spesifik. Mengapa menggunakan wildcard untuk menentukan beberapa file untuk mencari bekerja dengan.bash*
dan tidak dengan*
atau bahkan./*
?Bagaimana saya bisa mencari semua file dalam direktori (dan bukan subdirektori) menggunakan
grep
?
grep "string" .bash*
.
grep "string" * .* 2>/dev/null
ataugrep -s "string" * .*
*
, yang dikenal sebagai globbing. Globbing tidak termasuk nama file yang dimulai dengan titik seperti.bashrc
standar. Anda dapat mengatur opsi shell sehingga akan menyertakan file-file ini, tetapi Anda dapat membuat diri Anda sedikit berantakan jika Anda tidak tahu apa yang Anda lakukan. Panduan yang bagus untuk memahami globing dapat ditemukan di sini mywiki.wooledge.org/glob