如何在Bash中左对齐文本



给定一个文本$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"