给定一个文本$txt
,我如何在Bash中将其左对齐为给定宽度?
示例(宽度=10):
如果是$txt=hello
,我想打印:
hello |
如果是$txt=1234567890
,我想打印:
1234567890|
您可以使用printf
命令,如下所示:
printf "%-10s |n" "$txt"
%s
表示将参数解释为字符串,-10
告诉它左对齐到宽度10(负数表示左对齐,正数表示右对齐)。n
是打印换行符所必需的,因为printf
不会隐式添加换行符。
注意man printf
简要描述了此命令,但完整的格式文档可以在man 3 printf
的C函数手册页中找到。
您可以使用-
标志进行左对齐。
示例:
[jaypal:~] printf "%10sn" $txt
hello
[jaypal:~] printf "%-10sn" $txt
hello
Bash包含printf
内置:
txt=1234567890
printf "%-10sn" "$txt"