我使用以下bash脚本在文件中查找字符串:
find $1 -name "$2" -exec grep -Hn "$3" {} \;
有时候这个脚本会失败。
grep: /proc/sysrq-trigger: Input/Output error
为了解决这个问题,我首先想要从查找结果中排除这个文件。这是一个好主意吗?如果是,我该如何做到这一点?还有其他的解决方案可以避免我的脚本失败吗?
/proc
目录:find $1 -path /proc -prune -o -name "$2" -print -exec grep -Hn "$3" {} \;
--exclude-dir
是设计用于在 grep 自身执行文件系统递归(grep -r
)时工作的,而不是在使用 find 时。为什么不与 xargs 结合使用,并使用另一个 grep 过滤掉 proc 条目呢?find $1 -name "$2" | grep -v '/proc' | xargs grep -Hn "$3" {} \;