Ваш языковой стандарт влияет на сортировку строк.Например, я получаю это с моим текущим языковым стандартом:
% echo -e "v 1006\nv10 1\nv 1011" | sort
v 1006
v10 1
v 1011
Но с языковым стандартом C я получаю это:
% echo -e "v 1006\nv10 1\nv 1011" | LC_ALL=C sort
v 1006
v 1011
v10 1
Я не уверен, почему он действительно так себя ведет.LC_ALL=C
в значительной степени эквивалентно отключению всей непредвиденной обработки и возвращению к операциям на уровне байтов (да - я пропускаю детали).
Почему другие настройки локали пропускают пространство, объяснить труднеехоть.Если кто-нибудь может объяснить это было бы хорошо:)