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(很多/几个重复)
我很期待你的回答
唯一正确的顺序是调用uniq之后sort,因为手册页uniq说:
丢弃INPUT(或标准输入)中连续相同行中的所有行,写入OUTPUT(或标准输出).
因此它应该是
grep 'somePattern' | sort | uniq
Run Code Online (Sandbox Code Playgroud)