linux uniq统计每一行的重复次数,Linux uniq总结

66b52468c121889b900d4956032f1009.png

8种机械键盘轴体对比

本人程序员,要买一个写代码的键盘,请问红轴和茶轴怎么选?

uniq命令用于报告或忽略文件中的重复行。

命令功能

uniq命令可以轻松地从文件中找到重复的行,而且可以删除重复项,显示重复项出现的次数,只显示重复的行,只显示唯一的行。

请注意,除非重复行是相邻的,否则uniq不会删除它们。因此可能需要先对它们进行排序,或将排序命令与uniq组合使用。

命令格式

uniq [选项] [文件]

命令选项-c或——count:在每列旁边显示该行重复出现的次数;

-d或–repeated:仅显示重复出现的行列;

-f或–skip-fields=:忽略比较指定的栏位;

-s或–skip-chars=:忽略比较指定的字符;

-u或——unique:仅显示出一次的行列;

-w或–check-chars=:指定要比较的字符。

实用命令

实例:1. 默认情况

描述:uniq命令删除了给定文件中所有连续重复的行。可以看到输出中,第1行和第3行重复了,第2行和第5行重复了。这是因为uniq命令只有在相邻的情况下才会删除重复的行

命令:uniq device

输出:

uniq.png

实例:2. 删除所有重复的行

描述:经过排序之后,所有相同的行都连续地排在一起,达到了删除所有行的目的。

命令:

sort -u device

sort device | uniq

输出:

uniq-sort.png

实例:3. 仅显示不连续重复的单一行

描述:只显示device中不连续重复的单一行,只有10:aaa:43是唯一的。

命令:uniq -u device

输出:

uniq-u.png

实例:4. 找出重复的行

显示device文件中连续出现的重复行。同样,不连续重复的相同行是不重复的行。

描述:33:fff:221出现了两次,因为它们不是连续的。

命令:uniq -d device

输出:

uniq-d.png

描述:在device文件中的第一行插入一行11:eee:49,但输出中没有出现,因为它们不是连续的。

命令:

vim device

uniq -d device

输出:

uniq-d5.png

描述:先排序,然后真正找出重复的行。

命令:sort device | uniq -d

输出:

uniq-d3.png

描述:先排序,然后将所有重复的行全部显示出来。

命令:sort device | uniq -D

输出:

uniq-d4.png

实例:5. 统计各行在出现的次数

描述:-c选项统计device文件中各行重复的次数。

命令:uniq -c device

输出:

uniq-c.png

描述:下面的例子,检查给定文件中每一行重复出现的行数。

命令:sort device | uniq -c | sort -nr

输出:

uniq-c-sort.png

实例:6. 将比较限制为N个字符

描述:只比较每行的第一个字符。输出中可以看到,前两行被当做相同的行。-d选项将比较限制为N个字符。

命令:uniq -d -w 1 device

输出:

uniq-w.png

实例:7. 忽略N个字符后比较

描述:下面的命令将忽略在文件中每行的前七个字符后,再进行比较。-s选项来忽略比较前N个字符。

命令:uniq -d -s 7 device

输出:

uniq-s.png

实例:8. 忽略N个字段后比较

描述:先将device文件的内容排序后,用awk格式化输出。-t和-F指定sort和awk的域分隔符。

命令:sort -t: device | awk -F: '{print $1" "$2" "$3}'

描述:忽略两个字段后进行比较。从输出中看到,第三个字段只有49和221是重复的。-f选项指定忽略N个字段后,再进行比较。

命令:sort -t: device | awk -F: '{print $1" "$2" "$3}' | uniq -d -f 2

输出:

uniq-f.png

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值