如何在bash中左对齐文本?

Mis*_*hko 29 bash printf justify text-justify

给定一个文本,$txt我怎么能在Bash中将它证明为给定的宽度.

示例(宽度= 10):

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

hello     |
Run Code Online (Sandbox Code Playgroud)

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

1234567890|
Run Code Online (Sandbox Code Playgroud)

drr*_*lvn 47

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

printf "%-10s |\n" "$txt"
Run Code Online (Sandbox Code Playgroud)

%s参数解释为字符串的方法,并-10告诉它左对齐宽度为10(负数表示左对齐,而正数表示向右对齐).在\n需要打印一个换行符,因为printf不添加一个含蓄.

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

  • @Jaypal,我不知道刚刚发生了什么或为什么,但我确定这不是你的错:) (2认同)

jay*_*ngh 5

您可以使用该-标志进行左对齐。

例子:

[jaypal:~] printf "%10s\n" $txt
     hello
[jaypal:~] printf "%-10s\n" $txt
hello
Run Code Online (Sandbox Code Playgroud)