![在文件行末添加变量空间](https://linux22.com/image/1582108/%E5%9C%A8%E6%96%87%E4%BB%B6%E8%A1%8C%E6%9C%AB%E6%B7%BB%E5%8A%A0%E5%8F%98%E9%87%8F%E7%A9%BA%E9%97%B4.png)
我想在每行末尾添加空格。空格的数量是可变的。如果空格的数量是固定的,那么我可以使用此命令
sed 's/$/ /g'
表示两个空格。
space_variable=4;
但是如果空白数量是变量(space_variable=4)那么我该如何使用它?
答案1
spaces=$(printf "%*s" "$space_variable" "")
这将返回空字符串用空格填充到宽度为 N 个字符的字段。
然后:sed "s/\$/$spaces/"
在 bash 中,你可以使用内置
printf -v spaces "%*s" "$space_variable" ""
但我发现它的可读性较差,因为它在某种程度上隐藏了变量名。