我有一个文件由管道分隔,我必须做一个字段的组,并获得其发生的总和。分组和筛选结果
我输入文件看起来像:
96472|Text1|6|A|City|Austin, TX|0123|9899|2017-02-12
96472|Text1|6|A|City|Austin, TX|0123|9899|2017-02-12
96472|Text1|6|A|City|Austin, TX|0123|9899|2017-02-12
214126|Text1|6|A|City|Austin, TX|0123|9899|2017-02-12
214126|Text1|6|A|City|Austin, TX|0123|9899|2017-02-12
214126|Text1|6|A|City|Austin, TX|0123|9899|2017-02-12
214126|Text1|6|A|City|Austin, TX|0123|9899|2017-02-12
214126|Text1|6|A|City|Austin, TX|0123|9899|2017-02-12
214126|Text1|6|A|City|Austin, TX|0123|9899|2017-02-12
214126|Text1|6|A|City|Austin, TX|0123|9899|2017-02-12
214126|Text1|6|A|City|Austin, TX|0123|9899|2017-02-12
214126|Text1|6|A|City|Austin, TX|0123|9899|2017-02-12
214126|Text1|6|A|City|Austin, TX|0123|9899|2017-02-12
这是我怎么做:在
cut -d'|' -f1 somefile.txt | cut -d'-' -f1 | sort | uniq -c
output is
3 96472
10 214126
基本上我想总结一下现场的发生,就像group by子句SQL。所以在我的例子中,我表明字段/列1有重复值为3和10
我相信有更好的方法来做到这一点。我也想过滤记录,有我发生的10个事件少:
cut -d'|' -f1 somefile.txt | cut -d'-' -f1 | sort | uniq -c | grep -v 10
是否有一个很好的方法来实现两个?
由于只是把down输入文件进行测试 –
预期输出? – Inian
我想要一些字段的发生,就像sql中的group by子句一样。所以在我的例子中,我表明f1具有相同的值重复10次 –