请解释如何在 unix 中使用 sort 命令

请解释如何在 unix 中使用 sort 命令

我是 UNIX 新手。请解释sort命令。我对排序字段分隔符有疑问。例如:sort -k2, 2 filename,请澄清。请提供小例子。

答案1

选项中存在语法错误,sort -k2, 2 filename不应有空格分隔符-k2,2。此外,在命令中添加字典顺序或数字排序选项以明确应如何排序,可以消除可能出现的混乱和/或错误(取决于要排序的文件的内容)。

例子

cat unsorted-file.txt # original unsorted file
9 8 7
6 55 44
3 2 1

sort -k1 -n unsorted-file.txt # example 1
3 2 1
6 55 44
9 8 7

sort -k3 -n unsorted-file.txt # example 2
3 2 1
9 8 7
6 55 44

sort -k1,3 -n unsorted-file.txt # example 3
3 2 1
6 55 44
9 8 7

sort -k2,3 -n unsorted-file.txt # example 4
3 2 1
9 8 7
6 55 44

解释

默认情况下,字段分隔符为非空白到空白的过渡。KEYDEF
-k起始和终止位置为 F[.C][OPTS][,F[.C][OPTS]],其中 F 是字段编号,C 是字段中的字符位置。两者都是原点 1,终止位置默认为行尾。-
-k1第一个字段
-k3- 第三个字段
-k1,3- 起始第一个字段,终止第三个字段
-k2,3- 起始第二个字段,终止第三个字段
-n- 根据字符串数值进行比较

相关内容