[英]Weird Linux sort results when $(dollar sign) is encountered
當我嘗試通過sort test.txt
排序以下文本時
的test.txt
fadf
basdf
asdfa
asdf
tasdf
gasdf
$
$ asdf
$ basd
$ asfd
$sdfa
$asdf
輸出為:
$
asdf
$asdf
$ asdf
asdfa
$ asfd
$ basd
basdf
fadf
gasdf
$sdfa
tasdf
順便說一句,在我的Mac上,輸出為:
$
$ asdf
$ asfd
$ basd
$asdf
$sdfa
asdf
asdfa
gasdf
sdf
tasdf
我認為結果很奇怪,除了$符號的位置,甚至“ asdf”和“ asdfa”也用$行分隔。
為什么這些$不在一起? 以及如何使它們在一起(或如何按ASCII排序)? 這是錯誤嗎?
(搜索了很長時間。非常感謝〜)
Linux:14.04.1 LTS,Trusty Tahr排序:(GNU coreutils)8.21
發生意外排序的原因是排序規則。
要查看您當前的規則,請輸入
sort --debug sortfile
例如,在我的筆記本電腦上
sort: using ‘en_ZA.UTF-8’ sorting rules
$
_
asdf
____
$asdf
_____
$ asdf
______
asdfa
_____
$ asfd
因此,它正在使用通過我的語言環境進行的搭配,其中將包括注意貨幣等的規則。
要忽略此問題,請將您的排序規則更改為舊式排序規則C。
LC_COLLATE=C sort sortfile
$
$ asdf
$ asfd
$ basd
$asdf
$sdfa
asdf
asdfa
basdf
fadf
gasdf
tasdf
如果您想永久保留設置,則可以在bashrc文件中設置區域設置,但這可能會影響文件列表等其他內容。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.