Добавьте 0, когда значение равно 12 символам

Я извлекаю столбец из файла с разными значениями, некоторые из них от 11 символов до 13, но всякий раз, когда значение равно 11, мне нужно добавить 0 впереди.

awk -F, '{print $1 }' $FILE | \ awk '{printf("%04d%s\n", NR, $0)}' | \ awk '{printf("%-12s\n", $0) }' 82544990078 82544990757 899188001738 9337402002723 9337402002686 9337402002747 812153010733 852271005003 89000118359 

Он должен выглядеть так:

 082544990078 082544990757 899188001738 9337402002723 9337402002686 9337402002747 812153010733 852271005003 089000118359 

2 Solutions collect form web for “Добавьте 0, когда значение равно 12 символам”

Вы можете использовать awk для этого:

 $ awk 'length() == 11 { $0 = "0" $0 } 1' < input 082544990078 082544990757 899188001738 9337402002723 9337402002686 9337402002747 812153010733 852271005003 089000118359 

... | sed 's/^(.\{11,11\})$/0\1/' | ...

  • Скопируйте до определенного многострочного шаблона
  • Чтобы заменить% меток, но не \% в Perl Regex
  • Проблема с sed в массиве, содержащем строки, содержащие пробелы
  • Как получить часть строк из всех .txt-файлов в каталоге?
  • Замена шаблонов
  • Измените значения параметра из файла и сгенерируйте файлы параметров из него
  • Команда SED не заменяет (работает регулярное выражение)
  • Почему sed печатает первую строку из файла, даже если не удается найти соответствующие группы
  • удаление первого и последнего символов каждой строки из командной строки
  • Используя Unix, при обнаружении шаблона нам нужно определить его соответствующий другой шаблон
  • sed не будет расширять мою переменную BASH в скрипте
  • извлекать только подстроку после двойных кавычек - grep
  • Interesting Posts

    Мастер марионеток не служит для показа / чтения

    Убить приостановленный процесс?

    rsyslog: Как я могу гарантировать, что rsyslog предоставляет сообщение об ошибке / отладке всякий раз, когда сообщения отбрасываются?

    getopts не соответствует второму аргументу

    При каких обстоятельствах gunzip & tar xf работает, но tar xzf терпит неудачу?

    Заменить ctrl-tab и alt-tab с помощью XKB

    Asible, пытаясь найти способ заставить тайм-аут задачи на хосте, на котором он сейчас работает

    Использование общего серийного модема

    Google Chrome скрыт. Доступно на% 1 (I18N_ARGUMENT_MISSING

    Emacs: открыть буфер со всеми строками между строками X и Y из огромного файла

    Сценарий оболочки для проверки состояния точки монтирования на сервере linux

    Отслеживайте ежедневные изменения каталога (и отправляйте их по электронной почте)

    как сделать файл с AWK из разных строк

    Использование OpenConnect для VPN, Монетный двор Linux 17

    Переменная Bash $ {0 ## * /}

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