[20181212]bash shell 字串 補零.txt

lfree發表於2018-12-12

[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/,如需轉載,請註明出處,否則將追究法律責任。

相關文章