何千ものフォルダを繰り返しながら、名前付きファイルがoutput(foldernumber).txt
含まれていて、どの出力ファイルにキーワードが含まれていないかを確認し、スクリプトでこれらの出力ファイルのリストを作成して追加の作業を実行したいと思います。
これが私が今まで持っているものです:
a=1
b=1
for i in ~pwd ;do
(cd $i/ && grep -L 'keyword' output"$a".txt >> ../list.txt)
a=$((a+b))
done
提供されたエラーは、出力ファイルが存在せず、空のlist.txt
ファイルが生成されたことを示します。どんな提案がありますか?
答え1
find . -type f -regex ".*/output[0-9]*\.txt" -exec grep -L 'keyword' '{}' +
または
find . -type f -regex ".*/output[0-9]*\.txt" -print0 | xargs -0 grep -L 'keyword'