Linux排序实用程序,可以对多列的最小值进行排序吗?

时间:2016-06-09 21:01:59

标签: linux sorting

一个文本文件有多列,其中一列是" start"和另一个"结束",两者都保持正整数值。但是,由于所描述的对象(将它们视为放置在数字线上的向量)具有方向,因此它们可以以这样的方向结束:

 400  20  (start at 400, end at 20)
  10 100  (start at 10, end at 100 )
 300  15  (start at 300, end at 15)

通常人们希望按范围排序,而不是开始或结束值。行的范围限制为:(min(开始,结束),max(开始,结束))。 所以按下限排序会得到这个顺序:

  10 100  (start at 10, end at 100 )
 300  15  (start at 300, end at 15)
 400  20  (start at 400, end at 20)

这种类型的排序可以使用Perl或任何其他类似的脚本语言来完成,首先生成较低的范围限制,然后对其进行排序。但是,据我所知,没有办法直接使用通常的unix / linux排序实用程序。指定类似的东西:

sort -k 1,1n -k 2,2n

对第一个进行排序,然后如果存在平局,则对第二个进行排序。但这并不是理想的排序。

有没有办法做这种类型的"最少的多列"只使用"排序"?

0 个答案:

没有答案