有趣的grep情况

时间:2016-07-12 09:13:43

标签: xml grep

我有99999个XML文件,我认为它们都包含标记"<A_ItemKey>"

当我运行此命令时:

cat *.xml | grep "<A_ItemKey>" | wc -l

我得到了结果75140

但是,如果我运行此命令:

grep "<A_ItemKey>" *.xml | wc -l

我得到结果99999(我认为是正确的)。

为什么这两个命令不会显示相同的结果?

非常感谢提前: - )

/保

1 个答案:

答案 0 :(得分:2)

有些文件不会以换行符结尾。

$ printf '<A_ItemKey>' > 1
$ printf '<A_ItemKey>' > 2
$ grep '<A_ItemKey>' 1 2
1:<A_ItemKey>
2:<A_ItemKey>
$ grep '<A_ItemKey>' 1 2 | wc -l
2
$ cat 1 2 | grep '<A_ItemKey>'
<A_ItemKey><A_ItemKey>
$ cat 1 2 | grep '<A_ItemKey>' | wc -l
1

BTW,使用&#34; grep&#34;和&#34; xml&#34;事实上,用一句话来说,有趣的是#34;