Sorting 为什么';排序';是否根据不同字段的存在或不存在对字段进行错误排序?

Sorting 为什么';排序';是否根据不同字段的存在或不存在对字段进行错误排序?,sorting,gnu-coreutils,Sorting,Gnu Coreutils,我发现一些数据在“排序”中表现得很奇怪。对csv文件的第一个字段进行数字排序时,第四列的存在或不存在会导致第七行排序错误 我在Slackware64 current上使用GNU sort 8.21 数据: 这项工作: cut -d , -f 1-3 < weird.csv | sort -t , -k 1n 第7行似乎排序不正确 我似乎找不到任何明显的解释来解释这种行为。使用“g”而不是“n”具有我所期望的行为,但我不清楚“g”和“n”之间的区别 我发现我做错了什么。详细说明如下: 简而

我发现一些数据在“排序”中表现得很奇怪。对csv文件的第一个字段进行数字排序时,第四列的存在或不存在会导致第七行排序错误

我在Slackware64 current上使用GNU sort 8.21

数据:

这项工作:

cut -d , -f 1-3 < weird.csv | sort -t , -k 1n
第7行似乎排序不正确


我似乎找不到任何明显的解释来解释这种行为。使用“g”而不是“n”具有我所期望的行为,但我不清楚“g”和“n”之间的区别

我发现我做错了什么。详细说明如下:


简而言之,我应该使用'-K1,1n'来指定排序应该从字段1开始和结束。因为我没有指定结束字段,而且我的区域设置自动忽略数字中的逗号,所以它没有比较我认为它在比较的数字

它在OS X上正常工作,但我在Linux上用GNU sort 8.5.unix.stackexchange.com复制了它,这可能是一个更好的回答这个问题的地方。这回答了你的问题吗?
cat weird.csv | sort -t , -k 1n