2

我正在尝试对一个名为data的文件进行排序以用于学习目的。它在我的教科书中给出。

5 27
2 12
3 33
23 2
-5 11
15 6
14 -9

sort dataQ1)在这种情况下的顺序是什么?

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
4

1 回答 1

1

sort默认情况下按字典顺序对整行进行排序,因此第一个排序将是

-5 11
14 -9
15 6
2 12
23 2
3 33
5 27

-出现在前面1(检查每个的 ASCII 代码)

根据posix标准,上述排序是正确的。GNU SORT(ubuntu 中使用的版本)似乎有偏差。

这个+1n论点也源于旧版本的 sort:

该标准的早期版本还允许使用 - 号和 + 号选项。这些选项不再由 POSIX.1-2008 指定,但可能存在于某些实现中。

首先,sort 使用的从零开始的计数与其他实用程序约定不一致。

http://pubs.opengroup.org/onlinepubs/9699919799/utilities/sort.html

综上所述,旧版本的 sort 将 -1 视为-k 2,因此您应该-k2 -n在 ubuntu 中使用。

于 2013-08-14T23:35:16.623 回答