将Find命令与RegEx用于搜索字符串

时间:2013-05-15 15:02:42

标签: regex linux grep

我写了一个命令,成功返回包含关键字“Font”的所有PDF文件:

find /my/path/PDFFiles/  -type f -name "*.pdf" -exec grep -H "Font" '{}' ';'

我希望克服这个命令的一些限制。

问题

  1. 我如何在我的搜索字符串中使用RegEx,我目前正在使用“字体”
  2. 如何调整上述命令以返回关键字“字体”不存在的所有文件名?
  3. 由于

1 个答案:

答案 0 :(得分:2)

1)grep支持开箱即用的正则表达式。所以只需摆脱""。例如,如果你想要“不”或“字体”

find /my/path/PDFFiles/  -type f -name "*.pdf" -exec grep -H "[df]ont" '{}' ';'

2)grep还允许您使用-v命令排除条目。所以要排除'字体',请尝试:

find /my/path/PDFFiles/  -type f -name "*.pdf" -exec grep -vH "Font" '{}' ';'

您还可以使用this question

中详述的find prune选项