我的工作涉及大量文件中的大量排序字段。我通常使用bash中的sort
命令执行此操作。不幸的是,当我开始排序时,我真的不确定要花多长时间。我应该等待一秒钟才能显示结果,还是应该在运行时开始处理其他内容?
是否有任何可能的方法来了解排序的进展情况或工作速度有多快?
$ cut -d , -f 3 VERY_BIG_FILE | sort -du > output
答案 0 :(得分:10)
不,GNU sort
没有进行进度报告。
但是,如果您使用sort
只是为了删除重复项,并且您实际上并不关心排序,那么有more scalable way这样做:
awk '! a[$0]++'
这会在看到第一次出现的行时写出,这可以让你了解进度。
答案 1 :(得分:3)
您可能想尝试pv,它应该让您非常了解管道中的吞吐量。
示例(未经测试)在pv
命令之前和之后注入sort
以了解吞吐量:
$ cut -d , -f 3 VERY_BIG_FILE | pv -cN cut | sort -du | pv -cN sort > output
编辑:我在您的排序命令中错过了-u,因此首先计算行以获得百分比输出是无效的。从我的回答中删除了那部分。
答案 2 :(得分:-4)
您可以在后台执行“排序” 你会得到提示,你可以做其他工作
$ sort ......& #(&表示在后台运行)