我正在尝试对名为 data 的文件进行排序以用于学习目的。它在我的教科书中给出。
5 27
2 12
3 33
23 2
-5 11
15 6
14 -9
Q1)在这种情况下,只有sort data
的顺序是什么?
Q2)我在一个文件夹中工作。 sort data
有效,但sort +1n data
没有。为什么?
我输入的方式与书中的完全相同,我收到了这个错误 -
sort: cannot read: +1n: No such file or directory
编辑 - 本书希望跳过第1列并按第2列排序。这就是为什么可以使用+ n。
我使用lubuntu 13来学习unix bash脚本。
PS - 以下是sort data
14 -9
15 6
2 12
23 2
3 33
-5 11
5 27
答案 0 :(得分:1)
sort
默认按字典顺序对整行进行排序,因此第一种排序将是
-5 11
14 -9
15 6
2 12
23 2
3 33
5 27
-
出现在1
之前(检查每个的ASCII代码)
根据posix标准,上述排序是正确的。 GNU SORT(ubuntu中使用的版本)似乎有偏差。
+1n
参数也源于旧版本的排序:
此标准的早期版本还允许使用 - number和+ number选项。这些选项不再由POSIX.1-2008指定,但可能存在于某些实现中。
首先,sort使用的从零开始的计数与其他实用程序约定不一致。
http://pubs.opengroup.org/onlinepubs/9699919799/utilities/sort.html
将事实放在一起,旧的sort版本将-1视为-k 2
,因此您应该在ubuntu中使用-k2 -n
。