如何printf像表格一样对齐我的输出?
Title Author
BaokyBook Baoky2
Use basename commandUse basename command .. Baoky
我的部分代码是这样的
titlelength=${#title};
首先我获得标题长度,然后我就像这样打印
titlespace=`expr 60 - titlelength`;
printf "%s %${titlespace}s\n" "$title" "$author"
但是对齐是不对的,我如何使其良好对齐
在回答以下答案:
在做出改变之后
我所有的左边都对齐了.它似乎不起作用.
解决方法:
最简单的方法是在固定宽度上打印标题:
printf "%30s %s\n" "$title" "$author"
如果要确定最大宽度,则需要在执行任何输出之前读取所有数据.或者你可以简单地将输出传递给列-t.或者,将标题截断为所选宽度(这种截断字符串的技术是一种基础):
printf "%30s %s\n" "${title:0:30}" "$author"
标签:shell,linux,sh
来源: https://codeday.me/bug/20190626/1289463.html