web-dev-qa-db-ja.com

すべてのソースファイル(* .c、*。cpp、*。h)を一覧表示する方法

Linux/MinGW/Cygwinに含まれるソースファイル(* .c、*。cpp、*。h)を検索し、すべてのサブディレクトリに再帰的に検索します。

私の基本的な考え方は、findgrepを使用することです。ただし、指定されたファイル名をチェックできる正規表現の作成は、*。c、*。cpp、または* .hのいずれかで簡単ではありません。手伝ってくれませんか?

16
Nullptr

これはうまくいくはずです:

find Linux/MinGW/Cygwin -name '*.c' -o -name '*.cpp' -o -name '*.h'
14
cYrus
find -regex '.*/.*\.\(c\|cpp\|h\)$'

私は使うだろう:

find . -regex '.*\.\(c\|cpp\|h\)$' -print
2
rouble

少し単純な正規表現を使用できます。

find . -type f -regex ".*\.[ch]\(pp\)?$"
1

速くて汚い、そしてディレクトリ名を避けます:

find . -type f -name *.[c\|h]
1
user282564

私はbashでも動作するMac Proを使用しています。しかし、コマンドラインに入力するたびに:

find -name

違法オプションと書いてあります。だから私はそれを次のように単純化しました:

find *.c *.cpp *.h

そしてそれは本当にうまくいった!

0
Schawn