对文件进行grep时,grep返回true而不是行,为什么?

和Ciborowski-MSFT

我正在大约13G大小的文件上运行grep。回来了

Binary file file.xml matches

我没想到这一点,我以为它将返回我的字符串的每一行,以便我可以运行以下命令,

grep "searchString" ./file.xml | wc -l 

并返回我的大文件中所有出现的searchString的计数。

用户

似乎grep认为您的XML文件是二进制文件而不是文本文件。

如果要强制grep将文件视为文本而不管其内容如何,​​则可以使用其--text开关(假设使用GNU grep),如下所示:

grep --text "searchString" ./file.xml | wc -l

请注意,如果您只想计算匹配项,则最好使用grep --count而不是通过管道进行传递wc -l,这样可以节省管道和流程调用。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

为什么当[[]是[]]而'{}是{}'返回False时,'()是()'返回True?

我可以仅对文件的前n行进行grep吗?

为什么cSplit返回TRUE而不是字符

带模式文件的grep返回所有行而不是目标

为什么grep不能返回所有的pari数字?

为什么我的代码返回脚本路径而不是绝对文件路径?

当返回类型是表名时,为什么PostgreSQL函数返回空列而不是不返回行?

从文件中的特定行以相反的顺序对文件进行Grep

为什么返回None而不是True或False?

使用grep的结果对文件进行排序

grep-匹配两个文件时如何返回模式和匹配行?

为什么grep显示不匹配的行?

为什么grep在C ++中不返回TRUE?

为什么“ grep'。* [s]'文件”有效而“ grep。* [s]文件”无效?

为什么grep在这里返回SIGPIPE(信号13)?

为什么在没有匹配项时进行grep打印?

当我不将stderr重定向到stdout时,为什么grep返回不匹配的行?

为什么grep只返回一行?

为什么二进制文件上的grep -P有时匹配错误的字节?

使用-rnw而不是-rlw时,grep返回空行

为什么sed不能对文件进行任何更改?

当文件包含回车符时,为什么grep打印出意外的输出?

为什么不对grep --exclude = *。html中的*进行文件名扩展?

为什么grep -H在这里返回奇怪的输出?

当我使用交替而不是方括号扩展时,为什么在grep中没有得到结果?

为什么 grep search '0,^M$' 返回空行?

为什么 foreach 循环不对文件进行更改?

如何使用基于字符的文件块而不是 grep 的行?

为什么 grep 在有 HIT 时返回非零值?