Почему Gnu сортирует сортировку по-разному на моей машине OSX и машине Linux?

У меня есть машина OSX, где sort запускает sort GNU из coreutils 8.26 (устанавливается из Homebrew) и машину Linux, где sort запускает GNU sort из coreutils 8.25.

На Mac:

 mac$ echo -e "{1\n2" | sort 2 {1 

Хотя в Linux:

 linux$ echo -e "{1\n2" | sort {1 2 

Я знаю, что sort зависит от локали. Я запустил locale на машине Linux, добавил каждую строку вывода с export и запустил результирующие строки на машине OSX перед запуском (в том же терминале) команды сортировки снова, которая дала тот же результат, что и раньше.

Однако я заметил, что запуск locale на Mac не отображает все строки, которые появляются в Linux, и я не уверен, связано ли это с этим.

Локаль на Linux:

 linux$ locale LANG=en_CA.UTF-8 LANGUAGE=en_CA:en LC_CTYPE="en_CA.UTF-8" LC_NUMERIC="en_CA.UTF-8" LC_TIME="en_CA.UTF-8" LC_COLLATE="en_CA.UTF-8" LC_MONETARY="en_CA.UTF-8" LC_MESSAGES="en_CA.UTF-8" LC_PAPER="en_CA.UTF-8" LC_NAME="en_CA.UTF-8" LC_ADDRESS="en_CA.UTF-8" LC_TELEPHONE="en_CA.UTF-8" LC_MEASUREMENT="en_CA.UTF-8" LC_IDENTIFICATION="en_CA.UTF-8" LC_ALL=en_CA.UTF-8 

И locale на OSX:

 mac$ locale LANG="en_CA.UTF-8" LC_COLLATE="en_CA.UTF-8" LC_CTYPE="en_CA.UTF-8" LC_MESSAGES="en_CA.UTF-8" LC_MONETARY="en_CA.UTF-8" LC_NUMERIC="en_CA.UTF-8" LC_TIME="en_CA.UTF-8" LC_ALL="en_CA.UTF-8" 

Я обнаружил, что если я устанавливаю LC_ALL=C на обеих машинах, они оба сортируют 2 до {1 . Но если я устанавливаю LC_ALL=en_CA.UTF-8 на обеих машинах, у меня есть LC_ALL=en_CA.UTF-8 выход, как указано выше. То же самое, если я установил LC_ALL=en_CA.utf8 на обеих машинах. ( locale -a перечисляет en_CA.utf8 на машине Linux, но en_CA.UTF-8 на машине OSX.)

Любая идея, что здесь происходит?

Linux и Unix - лучшая ОС в мире.