下面是来自巴斯丁的随机文件的命令:
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标志在做什么。有什么建议吗?
发布于 2015-06-18 11:47:39
uniq的-u使输出的每一行都是唯一的。uniq -u只打印输入中的每一行。uniq用于处理具有重复行的文件,并且只有当这些行在输入中连续出现时才能处理。因此,就其目的而言,唯一的行是没有立即重复的行。
(uniq的短期内存非常有限;它永远不会记得输入中是否出现了一行,除非它是前面的一行--这就是为什么uniq经常与sort配对的原因。)
当遇到重复行的运行时,uniq在没有-u arg的情况下打印该行的一份副本。(它使输出的每一行都是唯一的)。
使用-u参数,它会打印该行的零副本--从输出中忽略重复的运行。
发布于 2015-06-18 23:02:01
正常的:
echo "a b a b c c c" | tr ' ' '\n'
a
b
a
b
c
c
cuniq :没有后续的两行重复
echo "a b a b c c c" | tr ' ' '\n' | uniq
a
b
a
b
c已排序
echo "a b a b c c c" | tr ' ' '\n' | sort
a
a
b
b
c
c
c排序-u :没有两行重复
echo "a b a b c c c" | tr ' ' '\n' | sort -u
a
b
c排序/ uniq:完全不同
echo "a b a b c c c" | tr ' ' '\n' | sort | uniq
a
b
c计数不同的事件
echo "a b a b c c c" | tr ' ' '\n' | sort | uniq -c
2 a
2 b
3 c只有不重复的行(不先排序)
echo "a b a b c c c" | tr ' ' '\n' | uniq -u
a
b
a
b只有不重复的行(排序后)
echo "a b a b c c c Z" | tr ' ' '\n' | sort | uniq -u
Zuniq -d :只打印重复行,每个组一行
echo "a b a b c c c" | tr ' ' '\n' | uniq -d
c。。数数
echo "a b a b c c c" | tr ' ' '\n' | uniq -dc
3 chttps://unix.stackexchange.com/questions/210528
复制相似问题