![在 bash 中循环文件夹以查找并列出哪些文件夹包含不包含关键字的文件?](https://linux22.com/image/96388/%E5%9C%A8%20bash%20%E4%B8%AD%E5%BE%AA%E7%8E%AF%E6%96%87%E4%BB%B6%E5%A4%B9%E4%BB%A5%E6%9F%A5%E6%89%BE%E5%B9%B6%E5%88%97%E5%87%BA%E5%93%AA%E4%BA%9B%E6%96%87%E4%BB%B6%E5%A4%B9%E5%8C%85%E5%90%AB%E4%B8%8D%E5%8C%85%E5%90%AB%E5%85%B3%E9%94%AE%E5%AD%97%E7%9A%84%E6%96%87%E4%BB%B6%EF%BC%9F.png)
我想循环遍历数千个文件夹,所有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'