複数のファイルにデータがあります。すべてのファイルで一致するテキストを検索したい。 grep
コマンドを使用できますか?はいの場合はどうですか?
ファイルの正確な場所はわからないが、その名前はわかっている場合は、find
を使用できます。
find . \( -name "filename1" -o -name "filename2" \) -exec grep "<grepstatement>" '{}' \; -print
ファイルがこのディレクトリのどこかにあると仮定します。
コマンドラインですべてのファイルを追加するだけです。 *または?を使用できます。またはシェルがプレースホルダーとして許可するものは何でも。
マンページから:
grep [OPTIONS] PATTERN [FILE...]
つまり、必要な数のファイルを作成します。stdin/ pipeをgrepする場合は、なしを指定します。
grep 'mydata' *
スター*
記号は、複数のファイルで検索することを示します。複数のディレクトリにある複数のファイルを検索する場合は、-R
を追加して再帰的に検索できます。
grep 'mydata' * -R
私は最終的に:
grep -rli 'match_me' -- file1 file2 file3
Debian/Bashシステムでは広く標準のように見えますが、名前のない2つのダッシュは、これ以上フラグを定義できないことを意味します。多くの場合、残りの引数はすべてファイルパスです。免責事項ですが、これが意図した意味であるのか、私が使用するツールに適合する単なる症状であるのかはわかりません。