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
?
该sort
命令会考虑您的区域设置.许多语言环境忽略了破折号以进行整理.
你可以得到适当的排序
LC_COLLATE=C sort filename
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
570 次 |
最近记录: |