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
Sorting &引用;排序-c-k1“;第二个字段也比较好吗?_Sorting - Fatal编程技术网

Sorting &引用;排序-c-k1“;第二个字段也比较好吗?

Sorting &引用;排序-c-k1“;第二个字段也比较好吗?,sorting,Sorting,“排序”正确地报告这两行出现故障: > echo "a b\na a" | sort -c sort: -:2: disorder: a a 如何告诉sort只比较每行的第一个字段?我试过: > echo "a b\na a" | sort -c -k1 sort: -:2: disorder: a a 但它失败了,如上所述 我可以只对每行的第一个字段进行排序比较,还是必须进行排序比较 在比较之前使用sed之类的工具修剪线条 编辑:我使用的是“排序(GNUCoreutil

“排序”正确地报告这两行出现故障:

> echo "a b\na a" | sort -c 
sort: -:2: disorder: a a 
如何告诉sort只比较每行的第一个字段?我试过:

> echo "a b\na a" | sort -c -k1 
sort: -:2: disorder: a a 
但它失败了,如上所述

我可以只对每行的第一个字段进行排序比较,还是必须进行排序比较 在比较之前使用sed之类的工具修剪线条

编辑:我使用的是“排序(GNUCoreutils)7.2”。我尝试使用不同的字段分隔符,但没有帮助:

> echo "a b\na a" | sort -k1 -c -t" "
sort: -:2: disorder: a a

尽管我很确定空格是默认的分隔符。

以下功能如预期所示:

echo "a b\na a" | sort -s -c -k1,1
排序调用有两个问题:

  • -k
    的参数是指定起始和结束位置的键定义。如果省略“结束位置”,则默认为行的最后一个字段,而不是“开始”字段
    -k1,1
    同时指定这两个字段,告诉
    sort
    不要在比较中包含第二个字段

  • 默认情况下,
    sort
    不稳定,这意味着它不能保证不干扰比较相等的行的顺序。引用文件:

最后,作为最后一种手段,当所有键比较相等时,
sort
进行比较 整行,就好像除了
--反向
-r
)之外没有其他订购选项一样 指定了。
--stable
-s
)选项禁用此选项 “最后的比较”,以便所有字段的比较行 在其原始相对顺序中保留相等的值


我认为默认情况下,
sort
字段由逗号分隔。您可能必须使用
-d
(IIRC)更改分隔符。它是
-t
,但没有区别是的,我还认为
-k
只是有问题。。。但除了这种求助方式,我没有发现它有任何缺陷,然后我想到在信息手册中搜索“稳定”。当使用
-k
时,IMNSHO
-s
应为默认值-谁希望在2013年进行非稳定排序?