grep 无法在 docx 文件中查找文本

grep 无法在 docx 文件中查找文本

我找不到 grep 找不到包含单词“coomunities”的文件的原因。我使用了

grep -ril --include=GLOB "coomunities"  .

注意:社区是故意拼错的。该文件是 docx 文件,当前权限为“-rwxrwxrwx”。我试过了

  • 从同一文件夹或其他文件夹运行
  • 更改文件权限
  • 尝试对同一个文件使用不同的词语(Ubuntu、linux、literacy)
  • 特别包括 docx 扩展名
  • 我尝试了 searchmonkey 的 GUI,它可以正确找到文件,但使用 grep 进行任何搜索时,文件似乎都没有出现。有什么想法吗?

答案1

问题很少。

  1. 您无法 grep docx 文件。Grep 适用于标准输出文件或文本。Docx 经过编码,请查看此内容 如何在多个 DOCX 文件中搜索 Word 字段内的字符串? 验证这一点的快速方法是cat <file>.docx看看输出的内容是否可读。

  2. 除了 docx 问题之外。我没有在 grep 中使用过 GLOB,但据我所知,它非常有限。你最好使用正则表达式。像这样

    grep -Ei "coom[^[:space:]]+" *.<File Ext>

  3. 就我个人而言,当我找不到应该存在的东西时,我会换针,而不是换干草堆。试试“coom”甚至“coo”。

  4. 我认为权限不是问题。运行该cat命令,如果您可以读取它,则无需更改 grep 的权限。

希望有所帮助。

相关内容