我找不到 grep 找不到包含单词“coomunities”的文件的原因。我使用了
grep -ril --include=GLOB "coomunities" .
注意:社区是故意拼错的。该文件是 docx 文件,当前权限为“-rwxrwxrwx”。我试过了
- 从同一文件夹或其他文件夹运行
- 更改文件权限
- 尝试对同一个文件使用不同的词语(Ubuntu、linux、literacy)
- 特别包括 docx 扩展名
- 我尝试了 searchmonkey 的 GUI,它可以正确找到文件,但使用 grep 进行任何搜索时,文件似乎都没有出现。有什么想法吗?
答案1
问题很少。
您无法 grep docx 文件。Grep 适用于标准输出文件或文本。Docx 经过编码,请查看此内容 如何在多个 DOCX 文件中搜索 Word 字段内的字符串? 验证这一点的快速方法是
cat <file>.docx
看看输出的内容是否可读。除了 docx 问题之外。我没有在 grep 中使用过 GLOB,但据我所知,它非常有限。你最好使用正则表达式。像这样
grep -Ei "coom[^[:space:]]+" *.<File Ext>
就我个人而言,当我找不到应该存在的东西时,我会换针,而不是换干草堆。试试“coom”甚至“coo”。
我认为权限不是问题。运行该
cat
命令,如果您可以读取它,则无需更改 grep 的权限。
希望有所帮助。