是否可以在linux中显示排序的进度?

时间:2013-04-04 15:46:28

标签: linux bash sorting

我的工作涉及大量文件中的大量排序字段。我通常使用bash中的sort命令执行此操作。不幸的是,当我开始排序时,我真的不确定要花多长时间。我应该等待一秒钟才能显示结果,还是应该在运行时开始处理其他内容?

是否有任何可能的方法来了解排序的进展情况或工作速度有多快?

$ cut -d , -f 3 VERY_BIG_FILE | sort -du > output

3 个答案:

答案 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 ......& #(&表示在后台运行)