我有99999个XML文件,我认为它们都包含标记"<A_ItemKey>"
。
当我运行此命令时:
cat *.xml | grep "<A_ItemKey>" | wc -l
我得到了结果75140
但是,如果我运行此命令:
grep "<A_ItemKey>" *.xml | wc -l
我得到结果99999(我认为是正确的)。
为什么这两个命令不会显示相同的结果?
非常感谢提前: - )
/保
答案 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;