写点什么

Linux 之 uniq 命令

用户头像
入门小站
关注
发布于: 1 小时前

显示或忽略重复的行。

命令格式

uniq [选项]... [文件]

命令选型

  • -c, --count 在每行开头增加重复次数。

  • -d, --repeated 所有邻近的重复行只被打印一次。

  • -D 所有邻近的重复行将全部打印。

  • --all-repeated[=METHOD] 类似于 -D,但允许每组之间以空行分割。METHOD 取值范围{none(默认),prepend,separate}。

  • -f, --skip-fields=N 跳过对前 N 个列的比较。

  • --group[=METHOD] 显示所有行,允许每组之间以空行分割。METHOD 取值范围:{separate(默认),prepend,append,both}。

  • -i, --ignore-case 忽略大小写的差异。

  • -s, --skip-chars=N 跳过对前 N 个字符的比较。

  • -u, --unique 只打印非邻近的重复行。

  • -z, --zero-terminated 设置行终止符为 NUL(空),而不是换行符。

  • -w, --check-chars=N 只对每行前 N 个字符进行比较。

  • --help 显示帮助信息并退出。

  • --version 显示版本信息并退出。

命令参数

  • INPUT(可选):输入文件,不提供时为标准输入。

  • OUTPUT(可选):输出文件,不提供时为标准输出。

命令返回值

返回 0 表示成功,返回非 0 值表示失败。

实验文本

> cat 1.txt123456789123123333123eeerrr
复制代码

相邻行去重

> uniq 1.txt123456789123333123eeerrr
复制代码

文件每行排序后,相邻行去重

> sort 1.txt | uniq123333456789eeerrr
//或者> sort -u 1.txt 123333456789eeerrr
复制代码

统计各行在文件中出现的次数

> sort 1.txt  | uniq -c      4 123      1 333      1 456      1 789      1 eee      1 rrr
复制代码


先排序后统计重复的次数

查找文件中重复的行

> sort 1.txt | uniq -d123
复制代码


uniq 只检测邻近的行是否重复,sort -u 将输入文件先排序然后再处理重复行

忽略每行的前 N 个字符

> uniq -s 3 1.txt
复制代码


忽略每行的前 3 个字符,比较后面的字符

只对前 N 个字符进行比较

> uniq -w 3 1.txt
复制代码


只对每行的前 3 个字符进行比较


原文链接:https://rumenz.com/rumenbiji/linux-uniq.html

微信公众号:入门小站

发布于: 1 小时前阅读数: 2
用户头像

入门小站

关注

还未添加个人签名 2020.01.18 加入

还未添加个人简介

评论

发布
暂无评论
Linux之uniq命令