在shell脚本中调用它们时uniq和sort的顺序有区别吗?我在这里谈论时间和空间。
grep 'somePattern' | uniq | sort
VS
grep 'somePattern' | sort | uniq
对140 k行文本文件进行快速测试显示第一种方法略有提速(5.5 s vs 5.0 s)(获取uniq值然后排序)
我不知道如何衡量内存使用情况
现在的问题是:订单会有所作为吗?或者它是否依赖于返回的greplines(许多/几个重复)
我期待着你的回答
答案 0 :(得分:9)
我相信sort -u
适合这种情况,并且会对事物进行排序和统一。显然,这比以任何顺序单独调用sort
和uniq
更有效。
答案 1 :(得分:8)
唯一的正确的顺序是在uniq
之后调用sort
,因为uniq
的手册页说:
丢弃INPUT(或标准输入)中连续相同的一行,写入OUTPUT(或标准输出)。
因此它应该是
grep 'somePattern' | sort | uniq
答案 2 :(得分:2)
uniq取决于被排序的项目以删除重复项(因为它比较了前一项和当前项),因此为什么排序总是在uniq之前运行。试试吧,看看。