Недопустимый вход суффикса numfmt

Я использую numfmt чтобы преобразовать numfmt Content-Length из байта в формат IEC, то есть 21M

 $ curl -sI http://jruby.org.s3.amazonaws.com/downloads/1.7.12/jruby-bin-1.7.12.tar.gz|grep Length|cut -d' ' -f2|numfmt --from=auto --to=iec 'numfmt: invalid suffix in input: '21981488 

Препятствует тому, почему numfmt жалуется на недопустимый суффикс. Когда я разделяю команду и проверяю вывод cut и вручную эхо значение numfmt , он работает как ожидалось

 $ curl -sI http://jruby.org.s3.amazonaws.com/downloads/1.7.12/jruby-bin-1.7.12.tar.gz|grep Length|cut -d' ' -f2 - 21981488 $ echo 21981488|gnumfmt --from=auto --to=iec 21M 

Я что-то упустил?

2 Solutions collect form web for “Недопустимый вход суффикса numfmt”

В coreutils-8.21 произошла ошибка, в которой мы неправильно приводили неверный контент. Если вы запускаете с уже выпущенным 8.22, он дает более очевидную ошибку:

 numfmt: invalid suffix in input: '21981488\r' 

Обратите внимание, если после номера есть пробелы или вкладки, то numfmt будет игнорировать их (поскольку он использует isblank ()), но для игнорирования \ r потребуется использовать isspace (). Игнорирование просто пробелов верно I thnk.

Кажется, что вывод curl содержит возврат каретки и число , переданное numfmt включает в себя один. Вы можете удалить это, прежде чем перейти к numfmt :

 curl ... | awk -F: '/Length/{sub("\r", "", $2); print $2}' | numfmt ... 

Кроме того, обратите внимание, что grep и cut обычно можно заменить альтернативной одиночной командой.

  • Как объединить два файла на основе соответствия двух столбцов? CSV
  • Как сделать обратный вывод, который уже передан из команд сортировки и вырезания
  • Что делает эта командная строка (`echo $ 1 | xargs -n 1 basename | cut -d '.' -f1`)?
  • Захватить определенное содержимое файла
  • Вырезать цветной текст, игнорируя цветовые метки
  • Помогите понять команду cut в скрипте
  • Могу ли я заставить `cut` изменять файл на месте?
  • Использование как Grep, так и Cut
  • Создание строк слов с разделителями пространства из вырезанного выражения
  • Соответствующая ячейка Grep файла csv и индекс этой строки
  • Что эквивалентно «grep | разрезать "с помощью sed или awk?
  • Linux и Unix - лучшая ОС в мире.