Тысяча разделителей в printf в zsh

Я пытаюсь определить разделитель тысяч в printf какое-то время, и я обнаружил, что у zsh есть некоторые проблемы с ним.

В bash я могу использовать что-то вроде:

 $ printf "%'d\n" 1234567890 1,234,567,890 

но в zsh это не сработает:

 $ printf "%'d\n" 1234567890 printf: %': invalid directive 

Я только что узнал, что coreutils printf сделает это просто отлично:

 $/usr/bin/printf "%'d\n" 1234567890 1,234,567,890 

Как использовать разделитель тысяч в zsh?

 $ zsh --version zsh 5.0.2 (x86_64-pc-linux-gnu) 

2 Solutions collect form web for “Тысяча разделителей в printf в zsh”

Обновление: с zsh v. 5.1 , встроенный printf поддерживает группировку тысяч через ' точно так же, как bash / coreutils printf (см. Также обсуждение здесь ).


Разделитель тысяч – это расширение GNU, которое zsh не поддерживает , и у него есть собственный встроенный printf который вы используете вместо этого. Как упоминалось в связанном сообщении, вы можете получить языковой зависимый разделитель тысяч:

 zmodload zsh/langinfo echo $langinfo[THOUSEP] 

Если вам нужно специально и исключительно использовать zsh, вы можете использовать это с sed.

Вероятно, проще будет использовать нестроенный printf от GNU coreutils , что позволит использовать параметр separator тысяч, если ваша система:

 $ command printf "%'d\n" 1234567890 1,234,567,890 

command printf сообщает оболочке не использовать встроенный или псевдоним, а искать команду в $PATH .

Чтобы дополнить ответ Майкла , вы можете сделать форматирование с тысячей дескрипторов вручную с помощью операторов zsh :

 var=1234567 zmodload zsh/langinfo setopt extendedglob echo $var[1,(l=-($#var-1)/3*3)-1]${var[l,l?-1:l]//(#m)???/$langinfo[THOUSEP]$MATCH} 
  • Очистить или отключить псевдонимы в zsh
  • zsh завершение: меню и однозначный префикс с одной вкладкой?
  • Возможная ошибка перенаправления в zsh 5x
  • Файлы без расширения .sh, не считающиеся для автозаполнения в zsh
  • «переключатель» на основе оболочки
  • Как я могу использовать псевдоним расширения истории в Zsh?
  • Как повторно использовать шаблон файла в .gitignore в bash / zsh?
  • zsh отказывается принять новый сценарий автозаполнения
  • Почему $ COLUMNS не отображается ни в env, ни в наборе? (по zsh)
  • На `fork`, дочерних процессах и" подоболочках "
  • как различать пользовательские сервисы и системные службы в systemd?
  • Interesting Posts

    Как сделать загрузочный USB из командной строки?

    VPN-клиент и IP-таблицы

    Использование rsync для перемещения (не копирования) файлов между каталогами?

    Найти все символические ссылки в каталоге и изменить цель на другой каталог

    Как сопоставить j / k с <Up> / <Down> для приложения только в терминальном эмуляторе?

    Чтобы выполнить резервное копирование на диск XFS с помощью образа и уровня файловой системы

    Может ли процесс вернуться к завершению? (AIX / КШ)

    Как заставить клавиши яркости работать внутри сеанса openbox?

    Почему я смог исправить сломанный пакет с aptitude, но я не мог с apt-get или synaptic?

    Установка световой схемы vim на gnome-terminal

    Что мне делать с удаленной машиной AIX, если случайно «chmod 644» – «/ usr / bin / ksh»?

    Может ли VirtualBox работать под Xen Dom0?

    как преобразовать несколько txt в CSV с данными поля, разделенными пустыми линиями

    Могу ли я запустить ffmpeg -f x11grab в течение указанного времени?

    Как показать уведомление a la Growl для всех консолей Linux

    Linux и Unix - лучшая ОС в мире.