[20181212]bash shell 字符串 补零.txt

[20181212]bash shell 字符串 补零.txt


--//上午写bash shell脚本,遇到一个问题,字符串前面补零的问题.


$ echo $BASH_VERSION

3.2.25(1)-release


$ a='12345'

$ printf "%08s\n" $a

   12345


$ printf "%8s\n" $a

   12345


--//对于字符串%8s,%08s都是一样的,都是前面补充空格.

--//数值可以使用类似的方法补零.


$ a='12345'

$ printf "%08d\n" $a

00012345


--//奇怪的是我在windows下安装git,里面自带bash就是ok的.

$ a='12345'

$ printf "%08s\n" $a

00012345


--//实际上在linux下printf有2个命令.一个是shell内建的,一个是外部命令.

$ type -a printf

printf is a shell builtin

printf is /usr/bin/printf


--//看了文档感觉没用.

--//正好我的字符串原来是16进制值.


$ a=0x12345

$ printf "%08x\n" $a

00012345


--//真要实现字符串前面补零,还是比较麻烦.


$ a=1a2b3c

$ printf "%08x\n" "0x"$a

001a2b3c

$ a=$(printf "%08s" $a | tr " " "0")

$ echo $a

001a2b3c


--//不知道还有什么好方法!!


来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/267265/viewspace-2285005/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/267265/viewspace-2285005/

你可能感兴趣的:(shell,git,操作系统)