シェルスクリプトで
bash
1echo '123 2456 381 459 550' | 6sort -n
とすると、Linuxでは-nオプションの有無に関わらず辞書順に、macOSでは-nオプションの有無に関わらず数の大きさでソートされます。
同じソースからビルドしたsortコマンドでも環境により挙動が異なるので、原因をご存知の方がいましたらご教授ください。
全角数字を数字ではないとすればLinuxでの挙動は納得です。しかし、macOSが全角数字を数字として扱うとしても、-nオプションで切り替えられなければいけないはずなので納得できません。
ちなみに、もちろん半角数字ではどちらも想定通りの挙動になります。
MacOSはLinuxではありません。
同じコマンド・同じオプションでも動作が違うのはめずらしくありません。
man sort
で比較してください。
> 同じソースからビルドしたsortコマンドでも環境により挙動が異なる
ご自分でビルドされたのですか?
> 同じソースからビルドしたsortコマンドでも環境により挙動が異なる
質問主さんがご自分でビルドしたのではなく、OS付属のsortコマンドを使っているとして
Debian 10.0 (buster)のsortのソース
https://sources.debian.org/src/coreutils/8.30-3/src/sort.c/
macOS v10.15 (Catalina)のsortのソース
https://opensource.apple.com/source/text_cmds/text_cmds-101.11.1/sort/sort.c.auto.html
別物ですよね
もちろん、Linuxのディストリビューションや、それぞれのOSのバージョンによっても、状況は変わりますけど
もし、質問主さんがご自分で同じソースからビルドされたのでしたら、全く的外れな指摘です
すみません
両OSでGNU coreutils 8.32をダウンロードしてビルドしました。また、Homebrewで導入したgsortコマンドでも同様の結果になりました。
申し訳ないのですが、実はこの実験を行ったのが半年ほど前なので、現在改めて調査しています。少々お待ち下さい。
sortの挙動にはLANG環境変数が影響するはずなので、$LANGの値を確認/記録/比較/質問への補足をするといいかと思います。
元のテキスト中のマルチバイト文字の文字コードは同じですか?
たぶん今時のOSは基本UTF-8で同じだとは思いますが、念の為に、それぞれのOSの日本語入力を使うのではなく、片方のOSで作った同一のテキストファイルで比較した方がいいですよ
あなたの回答
tips
プレビュー