首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么uniq不够独特,也有uniq -唯一?

为什么uniq不够独特,也有uniq -唯一?
EN

Unix & Linux用户
提问于 2015-06-18 10:20:27
回答 2查看 9.9K关注 0票数 43

下面是来自巴斯丁的随机文件的命令:

代码语言:javascript
复制
wget -qO - http://pastebin.com/0cSPs9LR | wc -l
350
wget -qO - http://pastebin.com/0cSPs9LR | sort -u | wc -l
287
wget -qO - http://pastebin.com/0cSPs9LR | sort | uniq | wc -l
287
wget -qO - http://pastebin.com/0cSPs9LR | sort | uniq -u | wc -l
258

手册页不清楚-u标志在做什么。有什么建议吗?

EN

回答 2

Unix & Linux用户

发布于 2015-06-18 11:47:39

简写版:

  • 没有uniq-u使输出的每一行都是唯一的。
  • uniq -u只打印输入中的每一行。

稍长版本:

uniq用于处理具有重复行的文件,并且只有当这些行在输入中连续出现时才能处理。因此,就其目的而言,唯一的行是没有立即重复的行。

(uniq的短期内存非常有限;它永远不会记得输入中是否出现了一行,除非它是前面的一行--这就是为什么uniq经常与sort配对的原因。)

当遇到重复行的运行时,uniq在没有-u arg的情况下打印该行的一份副本。(它使输出的每一行都是唯一的)。

使用-u参数,它会打印该行的零副本--从输出中忽略重复的运行。

票数 47
EN

Unix & Linux用户

发布于 2015-06-18 23:02:01

正常的:

代码语言:javascript
复制
echo "a b a b c c c" | tr ' ' '\n'
a
b
a
b
c
c
c

uniq :没有后续的两行重复

代码语言:javascript
复制
echo "a b a b c c c" | tr ' ' '\n' | uniq
a
b
a
b
c

已排序

代码语言:javascript
复制
echo "a b a b c c c" | tr ' ' '\n' | sort
a
a
b
b
c
c
c

排序-u :没有两行重复

代码语言:javascript
复制
echo "a b a b c c c" | tr ' ' '\n' | sort -u
a
b
c

排序/ uniq:完全不同

代码语言:javascript
复制
echo "a b a b c c c" | tr ' ' '\n' | sort | uniq
a
b
c

计数不同的事件

代码语言:javascript
复制
echo "a b a b c c c" | tr ' ' '\n' | sort | uniq -c
2 a
2 b
3 c

只有不重复的行(不先排序)

代码语言:javascript
复制
echo "a b a b c c c" | tr ' ' '\n' | uniq -u
a
b
a
b

只有不重复的行(排序后)

代码语言:javascript
复制
echo "a b a b c c c Z" | tr ' ' '\n' | sort | uniq -u
Z

uniq -d :只打印重复行,每个组一行

代码语言:javascript
复制
echo "a b a b c c c" | tr ' ' '\n' | uniq -d
c

。。数数

代码语言:javascript
复制
echo "a b a b c c c" | tr ' ' '\n' | uniq -dc
3 c
票数 11
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/210528

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档