【发布时间】:2016-06-12 19:46:25
【问题描述】:
我有一个巨大的日志,其中包含 100,000 行 xml 事务
许多行包含重复的条目,例如帐户 ID,我想 grep/sed 或 awk 这些帐户 ID 的排序并显示唯一结果或计数。
下面是我试图 grep/sed/awk 的模式
<Account Id="123456789012">
到目前为止,我已经尝试了以下方法:
sort 20150229.log | grep '<Account Id="*">' | uniq | wc -l
但我得到 0 个结果....
请指教
谢谢
【问题讨论】:
-
编辑您的问题以包含一些简洁、可测试的样本输入和预期输出,以便我们可以帮助您但一目了然 -
*表示zero or more repetitions of the preceding regexp segment,您应该使用[^"]*而不是 @987654326 @。不过,您的方法也存在其他问题。 -
使用 XML/HTML 解析器(xmllint、xmlstarlet ...)。
-
sort本身可以为您制作独特的线条。试试grep -E '<Account Id="[^"]+"' acct.txt | sort -u | wc -l