我有一个目录/usr/local/
,我需要查找该目录中包含与以下正则表达式.*\s-\scopy\s.*
匹配的字符串的所有文件。是否可以打印所有这些数学以及它们包含的完整路径文件名?
答案 0 :(得分:1)
如果你有GNU grep
,你可以让grep
为你完成所有工作:
grep -R '.*\s-\scopy\s.*' /usr/local
-R
开关告诉grep
递归到每个目录。默认情况下,grep
会将文件名添加到每个输出中。
您可能也想使用-I
标志来忽略二进制文件。
顺便说一下,.*
在这种情况下是非常无用的,你可以这样做:
grep -R '\s-\scopy\s' /usr/local
如果您的grep
不支持-R
转换,则完全符合POSIX标准的解决方案是:
find /usr/local -type f -exec grep '[[:space:]]-[[:space:]]copy[[:space:]]' {} +