grep は複数のファイルのパターンを検索し、別のファイルに出力します。

grep は複数のファイルのパターンを検索し、別のファイルに出力します。

a.fileなどの多くのファイルを含む/foo/barディレクトリがあります。そのディレクトリ内のすべてのファイルからパターンを検索するために使用していますが、行がで見つかった場合は、行が次に見つかった場合のように結果を新しいファイルに送信したいと思います。b.filec.filegrepxyza.new.filea.fileb.new.fileb.file

私の試み:画面は grep -ri "xyz" /foo/bar/*うまくいき、結果のすべての行はパターンを含むファイルのパスで始まります。新しいファイルを作成するために使用できる変数にパスが保存されていますか?

編集する:

内容は、以下に一致するすべての行でなけれa.new.fileばなりません。xyza.file

の内容は、と一致するすべての行でなければb.new.fileなりません。xyzb.file

答え1

for T in *.file
do
  grep -- xyz "$T" > "${T%.file}.new.file"
done

関連情報