2016-07-29 3 views
1

Как я могу выразить число с определенным числом цифр командой unix.Unix: выражение числа в некотором цифровом формате, заполненном нулями

Скажите 7, чтобы быть выражены в 6 цифрах как 000007 и 17 000017. Пожалуйста, дайте мне знать, если таковая имеется для достижения этой цели.

ответ

3

Если вы используете BASH, то вы можете использовать printf встроенной команды для заполнения нулей:

printf "%06d\n" 7 
000007 

printf "%06d\n" 17 
000017 

Чтобы сохранить отформатированную строку в переменном использовании:

printf -v str "%06d\n" 17 

echo "$str" 
000017 

Если вы не использует BASH затем использовать awk :

awk -v n=17 'BEGIN{printf "%06d\n", n}' 
000017 

awk -v n=7 'BEGIN{printf "%06d\n", n}' 
000007 
+1

Да, я использую Bash, и он работает. Спасибо :) – Karthik

+2

Не должно быть запятой после строки формата в синтаксисе оболочки. 'Awk' не требуется, даже если' bash' не используется. – jlliagre

+0

Спасибо и хорошая точка, запятая была копия/вставка ошибка (исправлено) – anubhava

2

Независимо от того, используете ли вы bash или нет, но при условии, что вы работаете на Unix/Unix как OS, printf будет работать, будучи обязательной автономной утилитой POSIX.

printf "%06d\n" 7 
Смежные вопросы