如何格式化cat表达式的输出

时间:2014-06-03 11:55:18

标签: sorting command-line format cut

我有一个这种格式的文件:

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

您是否知道如何做到这一点?

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