假设我有一堆不包含换行符的 XML 文件,但基本上包含一长串记录,由 </record><record>
分隔
如果分隔符是</record>\n<record>
我可以做类似 cat *.xml | grep xyz | wc -l
的事情计算感兴趣的记录实例,因为 cat 会每行发出一个记录。
有没有办法写SOMETHING *.xml | grep xyz | wc -l
其中 SOMETHING
可以每行流出一条记录吗?我尝试使用 awk
为此,但找不到避免将整个文件流式传输到内存中的方法。
希望问题足够清楚:)
最佳答案
这有点难看,但它有效:
sed 's|</record>|</record>\
|g' *.xml | grep xyz | wc -l
(是的,我知道我可以让它更短一点,但前提是要以清晰为代价。)
关于bash - 将一条长线作为多条线进行管道传输,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6557713/