Apakah ada perintah yang memungkinkan pencarian kata kunci dalam file di bawah direktori dengan ekstensi spesifik?
String grep -irn "string" ./path
memberikan pencarian rekursif untuk semua file di bawah direktori ./path
. Persyaratan khusus saya adalah untuk mencari di semua file di bawah ./path
dengan ekstensi seperti*.h
"*.h"
tanda kutip.foobar.h
di direktori saat ini, dan coba lagi.S et (menyalakan) yang sh ell opt ion
globstar
dengan perintahIni akan menyebabkan
**
komponen nama file berarti semuanya di sini dan di bawah. Jadipath/**
berarti semua yang ada dipath
direktori dan subdirektori . (Anda tidak perlu mengetik di./
sini.) Maka Anda dapat menggunakanuntuk mencari semua
.h
file di dalam dan di bawahpath
.Anda dapat u NSET pilihan dengan
shopt -u
.sumber
sumber
-exec
...+
bagus juga."string"
jawaban Anda!Jika Anda dapat menginstal sesuatu di mesin Anda, saya sarankan menggunakan ack .
Anda dapat melakukan apa yang Anda butuhkan dengan itu dan banyak lagi. Untuk kasus penggunaan Anda, Anda dapat melakukan:
Untuk menemukan filter file mana yang didukung secara asli, jalankan perintah
ack --help=type
.sumber
Bagaimana dengan yang ini?
Penjelasan:
find
perintahfind
perintahfind
dengan-exec
, ini adalah specifier end-of-commandsumber
"*.h"
kerjanya? Saya akan berpikir itu perlu'*.h'
Jika Anda menggunakan gnu grep maka ada bendera yang melakukan persis seperti yang Anda inginkan:
walaupun saya tidak berpikir itu tersedia di greps lain.
sumber