В aaa.txt 3 строки. Первая строка содержит пробел (ASCII 32), вторая строка содержит табуляцию (ASCII 9), третья строка начинается с пробела.
2 3
2 4
2 5
Затем введите sort aaa.txt
. В руководстве GNU указано Если нет ключевых полей указаны, сортировка использует ключ по умолчанию для всей строки. Поскольку табуляция меньше пробела, правильный ответ должен быть
2 5
2 4
2 3
Но моя оболочка bash получила
2 3
2 4
2 5
Вопросы:
- Почему фактический результат отличается от теоретического результата? Разделитель не участвует в сортировке?
Пробел является разделителем по умолчанию. То есть пробел и табуляция являются разделителями одновременно?
sort -k2,2 aaa.txt
должен получить приведенный ниже теоретический результат, потому что3 < 4 < 5
?2 3 2 4 2 5
sort
формирует «воображаемый» ключ, то есть набор полей, охватывающий всю строку, то есть все поля в строке; тогда это будет действовать как «настоящий» ключ, то есть игнорировать разделитель для целей сортировки. - person underscore_d   schedule 28.05.2020