强制linux排序使用词典顺序

igo*_*sol 2 linux sorting bash gnu

我生成了一个带有伪随机数的文本文件,如下所示:

-853340442 1130519212 -2070936922 
-707168664 -2076185735 -2135012102 
166464098 1928545126 5768715 
1060168276 -684694617 395859713 
-680897578 -2095893176 1457930442 
299309402 192205833 1878010157 
-678911642 2062673581 -1801057195 
795693402 -631504846 2117889796 
448959250 547707556 -1115929024 
168558507 7468411 1600190097 
-746131117 1557335455 73377787 
-1144524558 2143073647 -2044347857 
1862106004 -193937480 1596949168 
-1193502513 -920620244 -365340967 
-677065994 500654963 1031304603 
Run Code Online (Sandbox Code Playgroud)

现在我尝试使用linux sort命令将其按顺序排列:

sort prng >prngsorted
Run Code Online (Sandbox Code Playgroud)

结果不是我的预期:

1060168276 -684694617 395859713 
-1144524558 2143073647 -2044347857 
-1193502513 -920620244 -365340967 
166464098 1928545126 5768715 
168558507 7468411 1600190097 
1862106004 -193937480 1596949168 
299309402 192205833 1878010157 
448959250 547707556 -1115929024 
-677065994 500654963 1031304603 
-678911642 2062673581 -1801057195 
-680897578 -2095893176 1457930442 
-707168664 -2076185735 -2135012102 
-746131117 1557335455 73377787 
795693402 -631504846 2117889796 
-853340442 1130519212 -2070936922 
Run Code Online (Sandbox Code Playgroud)

显然,sort尝试解析字符串并提取数字以进行排序.它似乎忽略了减号.

是否有可能强迫sort有点笨,只是按字典顺序比较行?结果应该是这样的:

-1144524558 2143073647 -2044347857 
-1193502513 -920620244 -365340967 
-677065994 500654963 1031304603 
-678911642 2062673581 -1801057195 
-680897578 -2095893176 1457930442 
-707168664 -2076185735 -2135012102 
-746131117 1557335455 73377787 
-853340442 1130519212 -2070936922 
1060168276 -684694617 395859713 
166464098 1928545126 5768715 
168558507 7468411 1600190097 
1862106004 -193937480 1596949168 
299309402 192205833 1878010157 
448959250 547707556 -1115929024 
795693402 -631504846 2117889796 
Run Code Online (Sandbox Code Playgroud)

注意:我尝试过-d选项,但没有帮助

注2:可能我应该使用另一个实用程序而不是sort

bor*_*ble 5

sort命令会考虑您的区域设置.许多语言环境忽略了破折号以进行整理.

你可以得到适当的排序

LC_COLLATE=C sort filename
Run Code Online (Sandbox Code Playgroud)