1

Linux 之 uniq 命令

 3 years ago
source link: https://segmentfault.com/a/1190000040554186
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

Linux 之 uniq 命令

发布于 今天 14:46

显示或忽略重复的行。

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.txt
123
456
789
123
123
333
123
eee
rrr

相邻行去重

> uniq 1.txt
123
456
789
123
333
123
eee
rrr

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

> sort 1.txt | uniq
123
333
456
789
eee
rrr

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

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

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

先排序后统计重复的次数

查找文件中重复的行

> sort 1.txt | uniq -d
123

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

忽略每行的前N个字符

> uniq -s 3 1.txt

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

只对前N个字符进行比较

> uniq -w 3 1.txt

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

原文链接:https://rumenz.com/rumenbiji/...
微信公众号:入门小站


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK