怎么grep return一个结果,然后打开的时候,control+f找不到?
How does grep return a result, then when opened, control+f cannot find?
我运行以下
grep -irln "mold"
在我的 Windows 7 Enterprise 机器上使用 cygwin 对一个目录进行测试,它在特定的 pdf 文件中找到了匹配项。但是,当我通过 adobe 或 chrome 打开文件并执行 control+f 并搜索 mold 时,没有找到任何结果。此 PDF 已通过 OCR 服务。所以我想我的问题是 grep 怎么可能得到 return 结果,然后对打开的文件执行 ctrl+f 而什么也得不到?
您似乎误会了 grep 会查找文件中的所有事件,而 PDF 文件是用标记语言编写的,用于呈现文本和图像的图形外观。
以一个非常简单的文本文件为例
$ cat << EOF > example.txt
> one dog
> two cats
> three chickens
> EOF
我们将其转换为 postscript 而不是 pdf
$ a2ps example.txt -o example.ps
[example.txt (plain): 1 page on 1 sheet]
[Total: 1 page on 1 sheet] saved into the file `example.ps'
$ ps2pdf example.ps example.pdf
所以我们有 3 个文件具有相同的文本,但后记和 PDF 在原始文本周围有其特定的标记语言。
现在如果我们让 grep 寻找鸡
$ grep chicken example.*
example.ps:(three chickens) N
example.txt:three chickens
您可以看到 PDF 文件不包含 chicken
纯文本。这是因为原始文本在PDF中被压缩了。
您 mold
的结果是误报。 PDF里面的文字被压缩了,grep找不到。
我运行以下
grep -irln "mold"
在我的 Windows 7 Enterprise 机器上使用 cygwin 对一个目录进行测试,它在特定的 pdf 文件中找到了匹配项。但是,当我通过 adobe 或 chrome 打开文件并执行 control+f 并搜索 mold 时,没有找到任何结果。此 PDF 已通过 OCR 服务。所以我想我的问题是 grep 怎么可能得到 return 结果,然后对打开的文件执行 ctrl+f 而什么也得不到?
您似乎误会了 grep 会查找文件中的所有事件,而 PDF 文件是用标记语言编写的,用于呈现文本和图像的图形外观。
以一个非常简单的文本文件为例
$ cat << EOF > example.txt
> one dog
> two cats
> three chickens
> EOF
我们将其转换为 postscript 而不是 pdf
$ a2ps example.txt -o example.ps
[example.txt (plain): 1 page on 1 sheet]
[Total: 1 page on 1 sheet] saved into the file `example.ps'
$ ps2pdf example.ps example.pdf
所以我们有 3 个文件具有相同的文本,但后记和 PDF 在原始文本周围有其特定的标记语言。
现在如果我们让 grep 寻找鸡
$ grep chicken example.*
example.ps:(three chickens) N
example.txt:three chickens
您可以看到 PDF 文件不包含 chicken
纯文本。这是因为原始文本在PDF中被压缩了。
您 mold
的结果是误报。 PDF里面的文字被压缩了,grep找不到。