bash:如何在字符串中添加x个前导空格

时间:2017-03-28 17:42:15

标签: bash awk sed indentation

x包含要添加的字符数。 如何在文本行中添加$ x个字符

sed -i s/^/   / 

完成工作,但必须输入空格数。在我的例子中,空格的数量是计算变量 谢谢你

2 个答案:

答案 0 :(得分:4)

您可以将printf与字段宽度规范一起使用。

line=$(printf "%*s%s" $x '' "$line")
echo "$line"

*表示从参数$x获取宽度。然后它在具有该宽度的字段中打印一个空字符串,并使用原始值$line跟随它。

答案 1 :(得分:2)

使用awk

x=3; awk -v x=$x '{printf "%" x "s%s\n", "", $0}' file

x=3; awk '{printf "%"'$x'"s%s\n", "", $0}' file