uniq和sort都是按行操作的linux命令。
sort按文本行排序,如下所示的log文件;直接sort log即可将其排序。
容易忽略的是sort -n命令,在如下例子中将看到
如果直接sort则会返回下图所示的内容,这是因为sort将所有的东东都当做字符处理4比1 2 3都大,比较结束。-n选项可以解决这个问题。
sort -n log2结果如下,-n的意思是将其当做数字处理。
uniq命令,这个命令的意思很简单:剔除重复的行,但是只能是相邻的 重复行;不相邻的是无法去除的。但是日志中可能出现很多不相邻的重复行,因此uniq很多时候要和sort一起使用才能起到去除重复的效果。
如下所示的log文件
直接uniq -c只能显示3个apple,因为uniq只考虑相邻近的啦。
所以需要先sort一下,然后再uniq,结果如下所示,就能很好的统计相同行出现的次数了。