Unix:用零填充表示某个数字格式的数字

时间:2016-07-29 16:23:30

标签: shell unix

如何使用unix中的命令表示具有一定数字位数的数字。

将7表示为6位数字000007,将17表示为000017.如果有任何此类命令可以实现此目的,请告诉我。

2 个答案:

答案 0 :(得分: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 :(得分:2)

无论您是否使用bash,但假设您在类似操作系统的Unix / Unix上运行,printf都可以使用,它是一个强制性的独立POSIX实用程序。

printf "%06d\n" 7