-1

我有一个带有字段分隔符#~# 的大文件和类似的记录

bus#~#337007270#~#461692988#~#2019-09-24 01:06:33#~#103  
bus#~#337007270#~#461692988#~#2019-09-24 01:06:33#~#115
bus#~#337007270#~#461692988#~#2019-09-24 01:06:33#~#117
bus#~#337007270#~#461692988#~#2019-09-24 01:06:33#~#103 -> repeat of 1st
bus#~#337007270#~#461692988#~#2019-09-24 01:06:33#~#118
bus#~#337007270#~#461692988#~#2019-09-24 01:06:33#~#129
bus#~#337007270#~#461692988#~#2019-09-24 01:06:33#~#130
bus#~#337007270#~#461692988#~#2019-09-24 01:06:33#~#132
bus#~#337007270#~#461692988#~#2019-09-24 01:06:33#~#133

如何处理此文件以记录出现次数,如下所示

bus#~#337007270#~#461692988#~#2019-09-24 01:06:33#~#103#~#2 
bus#~#337007270#~#461692988#~#2019-09-24 01:06:33#~#115#~#1
bus#~#337007270#~#461692988#~#2019-09-24 01:06:33#~#117#~#1
bus#~#337007270#~#461692988#~#2019-09-24 01:06:33#~#118#~#1
bus#~#337007270#~#461692988#~#2019-09-24 01:06:33#~#129#~#1
bus#~#337007270#~#461692988#~#2019-09-24 01:06:33#~#130#~#1
bus#~#337007270#~#461692988#~#2019-09-24 01:06:33#~#132#~#1
bus#~#337007270#~#461692988#~#2019-09-24 01:06:33#~#133#~#1

谢谢你。

4

1 回答 1

1

您可以在下面使用:

sort filename |uniq -c|awk '{print $2,$3"#~#"$1}'

输出 :

bus#~#337007270#~#461692988#~#2019-09-24 01:06:33#~#103#~#2
bus#~#337007270#~#461692988#~#2019-09-24 01:06:33#~#115#~#1
bus#~#337007270#~#461692988#~#2019-09-24 01:06:33#~#117#~#1
bus#~#337007270#~#461692988#~#2019-09-24 01:06:33#~#118#~#1
bus#~#337007270#~#461692988#~#2019-09-24 01:06:33#~#129#~#1
bus#~#337007270#~#461692988#~#2019-09-24 01:06:33#~#130#~#1
bus#~#337007270#~#461692988#~#2019-09-24 01:06:33#~#132#~#1
bus#~#337007270#~#461692988#~#2019-09-24 01:06:33#~#133#~#1
于 2019-09-30T20:32:19.857 回答