vieyahn2017 / shellv

shell command test and study
4 stars 1 forks source link

6.26 Linux格式化字符串 printf #50

Open vieyahn2017 opened 5 years ago

vieyahn2017 commented 5 years ago

Linux格式化字符串 printf

vieyahn2017 commented 5 years ago

使用命令:

printf "%-20s%-15s%10.2f\n" "Shan" "zhang" 35 

输出:Shan zhang 35.00

分析:

%-20s表示一个左对齐、宽度为20个字符字符串格式,不足20个字符,右侧补充相应数量的空格符。

%-15s表示一个左对齐、宽度为15个字符字符串格式。

%10.2f表示右对齐、10个字符长度的浮点数,其中一个是小数点,小数点后面保留两位。

案例二:

使用命令:

printf "|%10s|\n" hello

输出:| hello|

分析:%10s表示右对齐,宽度为10的字符串,如不足是个字符串,左侧补充相应数量的空格数.

案例三:

使用命令:

printf "|%-10s|\n" hello

输出:|hello |

分析:和案例二比较一下

案例四:

使用命令:

printf "%x %#x\n" 15 15

输出:f 0xf

分析:如果#标志和%x,%X搭配使用,在输出十六进制数字时,前面回家0x或者0X前缀.

使用标志符的作用主要是为了动态的指定宽度和精度.