我正在尝试在宽度未知的 bash 中与 printf 左对齐。
我该怎么做?
有点像这样,但这不起作用
max=<enter random number>
printf "%-${max}s|", "Instance"
重点是下面的实例将是一个未知长度,它的长度可以是动态的。
示例输入
max=10
示例输出
Instance |
示例输入 2
max=12
示例输出 2
Instance |
您可以使用一个*
长度:
for ((max=8;max<15;max++)); do
printf "%-*s|\n" ${max} "Instance"
done
结果:
Instance|
Instance |
Instance |
Instance |
Instance |
Instance |
Instance |
我想你正在尝试打印一张桌子。我想你printf
一个人做不到。这基本上需要您的行输出命令来预测未来的输出。
但是,如果您可以容忍后处理,则可以使用column
命令简单地进行。只需选择一个您想用填充替换的字符,然后按照以下示例进行操作(我选择了反斜杠\
):
printf "%s\\|\n" "Instance" "Linstance" "Mintinginstance" | column -ts'\'
输出:
Instance | Linstance | Mintinginstance |