Saya memiliki pohon direktori yang terdiri dari beberapa ribu subdirektori, tetapi saya sering perlu hanya mengambil sebagian kecil dari direktori tersebut. Bagaimana saya bisa grep
hanya subdirektori yang cocok dengan suatu pola?
Sebagai contoh, misalkan saya memiliki subdirektori yang ingin saya bahas:
...
...
...
/foo
/fooLib
/fooHandler
/fooGizmo
...
...
...
The ...
entri di atas mewakili ribuan direktori lain saya tidak ingin grep di.
Andaikata saya sedang mencari semua contoh bar
, jika saya melakukan ini:
grep -n --recursive bar *
Saya akan menemukan apa yang saya cari, tetapi di semua direktori. Bagaimana saya bisa mencari hanya di subdirektori yang cocok dengan pola foo*
?
/foo
dan teman? Di/foo
dan/foo/bar
dan/foo/bar/qux
dan seterusnya tetapi tidak/wibble/foo
? Masuk/foo
dan/wibble/foo
tapi tidak/foo/bar
? Dalam/foo
dan/foo/bar
dan/wibble/foo
tetapi tidak/elsewhere
?Jawaban:
Anda dapat menggunakan grep dan menemukan kombinasi seperti di bawah ini:
Atau bisa Anda gunakan
Atau hanya menggunakan grep
sumber
foo*
?grep -R "test" /foo*
) adalah apa yang sebenarnya saya lakukan sekarang, jadi saya akan menerimanya.{}
dan backslash lakukan?coba
grep foo* <other parts>
misalnya:grep foo* -name "book*"
sumber
bar
semua file dalam subdirektori bernamafoo*
, haruskah ini seperti inigrep --recursive bar ./foo*/*
:?