前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Linux 之 uniq 命令

Linux 之 uniq 命令

原创
作者头像
入门笔记
修改2021-08-23 11:17:23
1.2K0
修改2021-08-23 11:17:23
举报
文章被收录于专栏:入门小站

显示或忽略重复的行。

命令格式

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值表示失败。

实验文本

代码语言:txt
复制
> cat 1.txt
123
456
789
123
123
333
123
eee
rrr

相邻行去重

代码语言:txt
复制
> uniq 1.txt
123
456
789
123
333
123
eee
rrr

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

代码语言:txt
复制
> sort 1.txt | uniq
123
333
456
789
eee
rrr

//或者
> sort -u 1.txt 
123
333
456
789
eee
rrr

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

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

先排序后统计重复的次数

查找文件中重复的行

代码语言:txt
复制
> sort 1.txt | uniq -d
123

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

忽略每行的前N个字符

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

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

只对前N个字符进行比较

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

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

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

微信公众号:入门小站

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 命令格式
  • 命令选型
  • 命令参数
  • 命令返回值
  • 实验文本
  • 相邻行去重
  • 文件每行排序后,相邻行去重
  • 统计各行在文件中出现的次数
  • 查找文件中重复的行
  • 忽略每行的前N个字符
  • 只对前N个字符进行比较
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档