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
Shell 什么是排序+;0-1`do?_Shell_Sorting - Fatal编程技术网

Shell 什么是排序+;0-1`do?

Shell 什么是排序+;0-1`do?,shell,sorting,Shell,Sorting,我有一个旧脚本,它包含一个sort+0-1的变体,但是我的系统中的man-sort甚至没有提到这些选项的存在 从,我被带到,上面写着: 在旧版本的排序中,+1选项使程序使用第二列数据进行排序(+2用于第三列,以此类推)。这是不推荐的,相反,-k选项可以用来做同样的事情 但是它没有提到像-1这样的否定参数应该做什么 请注意,在我的“现代”排序(GNU coreutils 8.21)中,sort+0-1起作用,而以下所有操作都失败:sort+0+1、sort-0-1和sort-0+1 我甚至可以添加

我有一个旧脚本,它包含一个
sort+0-1
的变体,但是我的系统中的
man-sort
甚至没有提到这些选项的存在

从,我被带到,上面写着:

在旧版本的排序中,
+1
选项使程序使用第二列数据进行排序(
+2
用于第三列,以此类推)。这是不推荐的,相反,
-k
选项可以用来做同样的事情

但是它没有提到像
-1
这样的否定参数应该做什么

请注意,在我的“现代”排序(GNU coreutils 8.21)中,
sort+0-1
起作用,而以下所有操作都失败:
sort+0+1
sort-0-1
sort-0+1

我甚至可以添加成对的数字(例如,
sort+0-1+2
sort+0-1+2-3
),但从一个简短的测试用例中,我无法精确地推断它们的含义


编辑:为了完整起见,根据
排序
上的gnu
信息
页面,现在无效的命令,如
排序+0+1
相当于
排序-k1-k2

在较旧的系统上,“sort”支持过时的originzero语法 “+POS1[-POS2]”用于指定排序键。过时序列的排序 +如果Y为“0”或不存在,则A.X-B.Y”等同于“sort-ka+1.X+1,B”, 否则它相当于“sort-ka+1.X+1,B+1.Y”


因此,在较新的系统中,
sort+0-1
相当于
sort-k 1,1

根据
sort
上的gnu
info
页面:

在较旧的系统上,“sort”支持过时的originzero语法 “+POS1[-POS2]”用于指定排序键。过时序列的排序 +如果Y为“0”或不存在,则A.X-B.Y”等同于“sort-ka+1.X+1,B”, 否则它相当于“sort-ka+1.X+1,B+1.Y”


因此,在较新的系统中,
sort+0-1
相当于
sort-k1,1

补充Marc B的答案:

说明如何通过定义此环境变量来模拟排序的旧行为:

_POSIX2_VERSION=199209

使用此变量,诸如
sort+0+1
等命令的行为与旧系统上的相同,避免了修改脚本的需要(并可能引入错误)。

为了补充Marc B的答案:

说明如何通过定义此环境变量来模拟排序的旧行为:

_POSIX2_VERSION=199209

有了这个变量,像
sort+0+1
这样的命令就可以像在旧系统上一样运行,避免了修改脚本的需要(并可能引入bug)。

什么平台,什么版本的
sort
?我猜它意味着从末尾索引的列或者(我认为这更可能)编号列的反向排序。但这完全是猜测。什么平台,什么版本的
排序
?我猜这意味着从末尾索引的列或(我认为这更可能)编号列的反向排序。但这完全是一种猜测。事实上,我在第5页之后就不再寻找它了,尝试用Regexp搜索“+”并不是很明显。事实上,我在第5页之后就不再寻找它了,尝试用Regexp搜索“+”也不是很明显。