我有一个这种格式的文件:
event: event1
event: event2
event: event2
event: event3
使用此命令:
cat event.txt | cut -d : -f2 |sort |uniq -c |sort -n
我得到了这个结果:
1 event1
1 event3
2 event2
我想改为输出:
event1 1
event2 2
event3 1
您是否知道如何做到这一点?
答案 0 :(得分:1)
如果您希望按照event[1] event[2] ...
之类的eventID对输出进行排序,请使用fedorqui的解决方案。
如果希望输出在输入文件中保持col2的原始顺序:
awk -F': *' 'NR==FNR{c[$2]++;next}$2 in c{print $2,c[$2];delete c[$2]}' file file
一个例子:
kent$ cat f
event: event1
event: event2
event: event2
event: event4
event: event4
event: event3
kent$ awk -F': *' 'NR==FNR{c[$2]++;next}$2 in c{print $2,c[$2];delete c[$2]}' f f
event1 1
event2 2
event4 2
event3 1