Ответ 1
Общая цифровая сортировка сравнивает числа как float, это позволяет использовать научную нотацию, например, 1.234E10, но медленнее и подвержена ошибке округления (1.2345678 может появиться после 1.2345679), числовая сортировка - это просто обычный алфавитный вид, который знает, что 10 приходит после 9.
См. http://www.gnu.org/software/coreutils/manual/html_node/sort-invocation.html
'- g' - общий-цифровой-сортировать '--sort = general-numeric Sort численно, используя стандарт C функция strtod для преобразования префикса каждая строка с двойной точностью число с плавающей запятой. Это позволяет числа с плавающей запятой в научной нотации, например, 1.0e-34 и 10e100. LC_NUMERIC locale определяет десятичную точку персонаж. Не сообщайте о переполнении, ошибок при переполнении или преобразовании. использование следующая последовательность сортировки: Строки, которые не начинаются с цифр (все считаются равными). NaNs (Значения "не числа" в IEEE арифметика с плавающей запятой) в непротиворечивые, но машино- заказ. Минус-бесконечность. конечный номера в возрастающем числовом порядке (с -0 и +0 равными). плюс бесконечность.
Используйте этот параметр только в том случае, если нет альтернатива; он намного медленнее, чем --numeric-sort (-n), и он может потерять информацию при преобразовании в плавающая точка.
'- n' --numeric-sort '--sort = numeric Сортировать численно. Номер начинается каждая строка и состоит из необязательного пробелы, необязательный знак - и нуль или больше цифр, возможно, разделенных тысячи разделителей, опционально за которым следует знак десятичной точки и ноль или более цифр. Пустое номер обрабатывается как "0". LC_NUMERIC locale определяет десятичный знак и тысячи разделитель. По умолчанию пробел является пробел или вкладку, но LC_CTYPE locale может изменить это.
Сравнение точное; здесь нет ошибка округления.
Ни ведущая '+, ни экспоненциальная нотация распознается. Сравнивать таких строк, используя --general-numeric-sort (-g).