Saya ingin mencari file sumber (* .c, * .cpp, * .h) yang berisi di Linux / MinGW / Cygwin, dan secara rekursif di semua sub direktori.
Ide dasar saya menggunakan find
dan grep
. Namun, membangun ekspresi reguler yang dapat memeriksa nama file yang diberikan adalah * .c, * .cpp, atau * .h tidak mudah. Bisakah Anda membantu saya?
$
di akhir perintah?foo.cpp.old
misalnya).Saya akan menggunakan:
sumber
-E
tidak dapat menemukan apa pun. Anda mungkin perlu menambahkan -E (diperpanjang) untuk membuatnya lebih portabel, sama sepertifind -E . -regex '.*\.(c|h|cpp)' -print
. ;-)Cepat dan kotor, dan menghindari nama direktori:
sumber
*.cpp
file. 2. Ini akan menemukan*.|
file. 3. Glob akan berkembang jika ada file yang cocok di direktori saat ini. Mengutip mencegah hal itu.Anda dapat menggunakan regex yang sedikit lebih sederhana:
sumber
Saya menggunakan mac pro yang juga berfungsi di bash. Tetapi setiap kali saya mengetikkan baris perintah:
dikatakan opsi ilegal. Jadi saya hanya menyederhanakannya sebagai:
dan ternyata itu benar-benar berfungsi!
sumber