调用uniq并在shell中以不同的顺序排序

kni*_*ttl 3 sorting shell optimization performance uniq

在shell脚本中调用它们时uniq和sort的顺序是否有区别?我在这里谈论时间和空间.

grep 'somePattern' | uniq | sort
Run Code Online (Sandbox Code Playgroud)

grep 'somePattern' | sort | uniq
Run Code Online (Sandbox Code Playgroud)

对140 k行文本文件的快速测试显示第一种方法略有提速(5.5 s vs 5.0 s)(获取uniq值然后排序)

我不知道如何衡量内存使用情况

现在的问题是:订单会有所作为吗?或者它是否依赖于返回的greplines(很多/几个重复)

我很期待你的回答

mqp*_*mqp 9

我认为这sort -u适用于这个确切的场景,并且会对事物进行排序和统一.显然,这比以任何顺序单独调用sortuniq单独调用更有效.


Rob*_*anu 9

唯一正确的顺序是调用uniq之后sort,因为手册页uniq说:

丢弃INPUT(或标准输入)中连续相同行中的所有行,写入OUTPUT(或标准输出).

因此它应该是

grep 'somePattern' | sort | uniq
Run Code Online (Sandbox Code Playgroud)