String grep如何返回结果,然后在打开时控制+;f找不到?
我运行了以下命令String grep如何返回结果,然后在打开时控制+;f找不到?,string,search,grep,cygwin,String,Search,Grep,Cygwin,我运行了以下命令 grep -irln "mold" 在我的Windows7企业版计算机上使用cygwin对一个目录进行检查,它在一个特定的pdf文件中找到了一个匹配项。但是,当我通过adobe或chrome打开文件并执行control+f和mold搜索时,没有找到任何结果。此PDF已通过OCR服务。因此,我想我的问题是,grep怎么可能返回结果,但对打开的文件执行ctrl+f操作却什么也得不到?您似乎误解了grep查找文件中的每一个事件,而PDF文件是用标记语言编写的,用于呈现文本和图像的
grep -irln "mold"
在我的Windows7企业版计算机上使用cygwin对一个目录进行检查,它在一个特定的pdf文件中找到了一个匹配项。但是,当我通过adobe或chrome打开文件并执行control+f和mold搜索时,没有找到任何结果。此PDF已通过OCR服务。因此,我想我的问题是,grep怎么可能返回结果,但对打开的文件执行ctrl+f操作却什么也得不到?您似乎误解了grep查找文件中的每一个事件,而PDF文件是用标记语言编写的,用于呈现文本和图像的图形外观。
以一个非常简单的文本文件为例
$ cat << EOF > example.txt
> one dog
> two cats
> three chickens
> EOF
因此,我们有3个文本相同的文件,但postscript和PDF在原始文本周围有其特定的标记语言。现在如果我们让grep去找那只鸡
$ grep chicken example.*
example.ps:(three chickens) N
example.txt:three chickens
您可以看到PDF文件不包含纯文本形式的chicken
。这是因为原始文本在PDF中被压缩
您的
mold
结果为假阳性。PDF中的文本已压缩,grep找不到它。PDF不是纯文本文件,是吗?即使你是OCR-ed。谢谢,看来我确实误解了。感谢您的解释清楚,并举例说明,非常感谢。
$ grep chicken example.*
example.ps:(three chickens) N
example.txt:three chickens