Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux排序实用程序,可以按多列的最小值排序吗?_Linux_Sorting - Fatal编程技术网

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

Linux排序实用程序,可以按多列的最小值排序吗?,linux,sorting,Linux,Sorting,文本文件有多个列,其中一个是“开始”,另一个是“结束”,都包含正整数值。但是,由于所描述的对象(将其视为放置在数字线上的向量)具有一个方向,因此这些对象可以以如下任意方向结束: 400 20 (start at 400, end at 20) 10 100 (start at 10, end at 100 ) 300 15 (start at 300, end at 15) sort -k 1,1n -k 2,2n 通常,人们希望按范围排序,而不是按起始值或结束值排序。行的

文本文件有多个列,其中一个是“开始”,另一个是“结束”,都包含正整数值。但是,由于所描述的对象(将其视为放置在数字线上的向量)具有一个方向,因此这些对象可以以如下任意方向结束:

 400  20  (start at 400, end at 20)
  10 100  (start at 10, end at 100 )
 300  15  (start at 300, end at 15)
sort -k 1,1n -k 2,2n
通常,人们希望按范围排序,而不是按起始值或结束值排序。行的范围限制为:(最小(开始,结束),最大(开始,结束))。 因此,按下限排序将给出以下顺序:

  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排序实用程序来实现这一点。指定如下内容:

 400  20  (start at 400, end at 20)
  10 100  (start at 10, end at 100 )
 300  15  (start at 300, end at 15)
sort -k 1,1n -k 2,2n
按第一个排序,如果平局,则按第二个排序。不过,这不是我们想要的那种


有没有一种方法可以只使用“sort”进行这种类型的“最少多列”排序?

仅在没有awk、bash内置或其他常用命令行工具的情况下进行排序…?我不知道有什么方法可以只使用
排序
。仅在没有awk、bash内置的情况下进行排序,或者其他常用的命令行工具…?我不知道用
sort
就可以做到这一点。