如何在bash中左对齐文本?

时间:2012-01-24 21:02:38

标签: bash printf justify text-justify

鉴于文字$txt,我怎么能在Bash中将其证明为给定的宽度。

示例(width = 10):

如果$txt=hello,我想打印:

hello     |

如果$txt=1234567890,我想打印:

1234567890|

3 个答案:

答案 0 :(得分:43)

您可以使用printf命令,如下所示:

printf "%-10s |\n" "$txt"

%s表示将参数解释为字符串,而-10表示左对齐宽度为10(负数表示左对齐,而正数表示向右对齐)。打印换行符需要\n,因为printf不会隐式添加新换行符。

注意 man printf简要描述了此命令,但完整格式文档可以在man 3 printf的C函数手册页中找到。

答案 1 :(得分:3)

您可以使用- flag进行左对齐。

实施例

[jaypal:~] printf "%10s\n" $txt
     hello
[jaypal:~] printf "%-10s\n" $txt
hello    

答案 2 :(得分:1)

bash包含printf内置

txt=1234567890
printf "%-10s\n" "$txt"