每天一个linux命令(2)uniq

1、工作原理

去除相邻行的重复值,因为uniq 不会检查重复的行,除非它们是相邻的行,它一般会和sort命令进行组合使用

sort -n ./test4.log
10
10
10
20
20
50
60
100

2、uniq -c

行首位置输出行重复的次数

sort -n ./test4.log | uniq -c
3 10
2 20
1 50
1 60
1 100

通过可以 sort (-r) 执行升降序

2、uniq -u

把重复的行全删掉(一条都不保留),剩余不重复的全部显示出来

sort -n ./test4.log | uniq -u
50
60
100
10 和20 分别有3条和两条 所以被去除

3、uniq -d

只输出重复的行

sort -n ./test4.log | uniq -d
10
20

4、统计出access.log中访问量最多的2个ip

cat ./test5.log | awk '{print $1}' | sort
187.171.68.177
187.171.68.177
187.171.68.177
187.171.69.177
201.158.69.116
201.158.69.116
201.158.69.116
201.158.69.116

cat ./test5.log | awk '{print $1}' | sort | uniq -c | sort -rn | head -2
4 201.158.69.116
3 187.171.68.177

你可能感兴趣的:(每天一个linux命令(2)uniq)