Почему sort -k5nr не является синтаксической ошибкой?

$ ls -l | sort -k 5 -n -r $ ls -l | sort -k5nr 

Я узнаю, что эти две команды генерируют один и тот же вывод.
Но я не понимаю, почему я могу комбинировать 5 с n ?
Почему не синтаксическая ошибка?

редактировать:

 $ ls -l | cut -d: -n -f 2 $ ls -l | cut -d:nf2 cut: the delimiter must be a single character Try `cut --help' for more information. 

Почему cut дозы не ведет себя как sort ?

One Solution collect form web for “Почему sort -k5nr не является синтаксической ошибкой?”

Потому что sort выполняется таким образом, что она анализирует их так, как вы ожидаете.

См. Также здесь :

  • Иногда параметры и их аргументы выполняются вместе, иногда разделяются пробелами, а иногда и символом, обычно: или =. Таким образом, «Prog -fFilename», «Prog -f Filename», «Prog -f: Filename», «Prog -f = Filename».
  • Некоторые программы позволяют комбинировать односимвольные параметры; Другие – нет. Переключатель «-fA» может означать то же самое, что «-f -A», или он может быть неправильным, или даже может быть действительным, но другим параметром.

Это похоже на комбинацию обоих (работает без пробелов и комбинации односимвольных опций).


Это просто разные программы, анализ аргументов которых осуществляется по-разному.

В coreutils 8.13 сравните следующее:

  • src/sort.c строка 4315, вызывая специальную функцию синтаксического анализа parse_field_count , которая возвращается с первым недопустимым символом (т. parse_field_count завершения значения числа и запускается следующий параметр): Вот почему sort может обрабатывать ваши аргументы.
  • src/cut.c , строка 803 ff., Просто используя регулярное поведение getopt для интерпретации всего до следующего пробела как параметра текущей опции.
  • Менее эмулировать TTY, чтобы сохранить цветной выход
  • Удалить последнюю строку из файла в Bash
  • как редактировать XML с помощью скрипта bash?
  • Как я могу переназначить Ctrl + C, чтобы отправить сигнал прерывания другим ключом?
  • Сценарий и аргументы оболочки Node.js
  • Почему иногда я получаю 'sh: $' \ 302 \ 211 ... ': command not found' в xterm / sh?
  • Переименование нескольких файлов в оболочке
  • Завершение умной вкладки (для каталогов)?
  • Как передать вывод команды другим командам?
  • Получение ошибки «команда не найдена» при сравнении двух строк в Bash
  • Tmux через SSH в скрипте
  • Давайте будем гением компьютера.