Shell编程中,Sort和uniq为什么总是结对使用

一直没有怎么写过脚本,最近赶鸭子上架,要写一个统计用户访问次数的脚本。因为用户在日志会出现多次,需要按照手机号码进行一下去重。结果用到了sort和uniq两个命令。当时对于这两个命令为什么需要联合使用比较模糊,今天总结一下。

提示:uniq去重功能,只能针对连续的多行进行去重,只剩下唯一的一条。

比如有如下的文件happy.txt,文件内容如下
Happy Birthday to You!
Happy Birthday to You!
Happy Birthday Dear Tux!
Happy Birthday to You!

如果需要将文件内容去重,我们看一下单用uniq和将sort与uniq结合用的差别。
cat happy.txt |uniq

结果如下
Happy Birthday to You!
Happy Birthday Dear Tux!
Happy Birthday to You!

先排序再去重
cat happy.txt |sort|uniq

结果如下
Happy Birthday Dear Tux!
Happy Birthday to You!


看了上面的测试结果,大家应该明白了,sort是为了将相同内容的行排列在一起,然后使用uniq将相同的行进行去重,进而达到去重的目的。

猜你喜欢

转载自lichuanbao.iteye.com/blog/1452337
今日推荐