スクリプトでいくつかのテキストを含むファイルを見つけたいです。テキスト付きファイルとテキスト付きファイルの完全な行を知る必要があります。grep
これを行うユーティリティですが、可能であれば出力を:
ファイル名から利用可能な形式に変換するにはどうすればよいですか?コマンドでよく使うように使用できる--porcelain
パターンはありますか?grep
git
test-num:1:date:jan-2
例:grepしたいファイルでいっぱいのフォルダがあります。このファイルには、FAILURE:<some reason>
またはSUCCESS:<some reason>
(何よりも)が含まれています。特定の原因を検索して後で処理するには、ファイル名と原因(テキスト全体の行が可能)を格納するスクリプトが必要です。出力は、コードを実行できる限り、任意の種類のデータ構造にすることができます。
ベストアンサー1
grep --porcelain
UNIXでは、ファイル名の特殊文字を処理することは必ずしも後で考慮されるわけではありません。次のように試してみることができますが、効率が低下します。
pattern='some pattern'
for file in ./*; do
grep -- "$pattern" "$file" | while read -r line; do
printf 'file: %s, line: %s\n' "$file" "$line"
done
done