1

.cpp で終わるいくつかのファイルで、"[0]" と "[1]" のすべてのインスタンスを見つける必要があります。ファイルは異なるサブディレクトリにあります。

sed を使用してサブディレクトリ内のすべての .cpp ファイルをスキャンし、パターンを探すことは可能ですか?

ありがとう!

4

1 に答える 1

1

放っておけば、検索用ではなく、ストリーム編集sedです。を使用します。grep

find . -iname '*.cpp' | while read filename; do grep --with-filename '\[[01]\]' "$filename"; done

またはスクリプトで:

find . -iname '*.cpp' | while read filename 
do 
    grep --with-filename '\[[01]\]' "$filename"
done

スペースを含むファイル名が生き残るように、readここで(および引用符で囲んで)使用しています。$filenameWindows システムでは、これは特に悪夢です。

どのファイルも特に大きいことがわかっていない場合は、入力の効率のために検索の効率を犠牲にして、すべてのファイルを検索し、cpp ファイルからの出力のみを選択することができます。

grep -r '\[[01]\]' . | grep '.cpp:'
于 2013-02-13T12:53:56.570 に答える