计算具有相似列值的行数

时间:2010-12-30 09:11:31

标签: unix scripting awk

计算最后一列中具有相似值的文件中的行数。

   1 517904400201116629 ; 26122010 194609 ; 102 ; 10 ; FR ; M ; NA ; 0 ; (ART1-000010) The FR server timed out.
   1 517904400201116630 ; 26122010 194609 ; 101 ; 10 ; FR ; M ; NA ; 0 ; (ART1-000010) The FR server timed out.
   1 517904400201116631 ; 26122010 194609 ; 101 ; 10 ; FR ; M ; NA ; 0 ; (ART1-000010) The FR server timed out.
   1 517904400201256749 ; 26122010 163432 ; 131 ; 18326 ; FR ; H ; COLC9FMT_TLSIMPStationCheckPostSubscr.cpp ; 92 ; Post Subscriber 4187514772 is not valid for this event.
   1 517904400201261167 ; 26122010 170724 ; 131 ; 18326 ; FR ; H ; COLC9FMT_TLSIMPStationCheckPostSubscr.cpp ; 92 ; Post Subscriber 9052695914 is not valid for this event.
   1 517904400201271471 ; 26122010 181943 ; 131 ; 10 ; FR ; M ; NA ; 0 ; (ART1-000010) The FR server timed out.
   1 517905400201757204 ; 26122010 164743 ; 131 ; 18326 ; FR ; H ; COLC9FMT_TLSIMPStationCheckPostSubscr.cpp ; 92 ; Post Subscriber 9052695914 is not valid for this event.

最后一个值列不断变化。我想添加查找具有相同最后一列值

的行数

如何使用awk

执行此操作

1 个答案:

答案 0 :(得分:3)

如果列由一个或多个空格字符分隔:

awk '{a[$NF]++} END{for (el in a) print a[el] " lines end with \""el "\""}' file | sort -nr

否则,您必须使用选项-F

更改字段分隔符