【发布时间】:2014-07-22 10:20:14
【问题描述】:
我有一个包含多行字符串的变量。
我将把这个变量插入到另一个多行回显字符串中,这个回显字符串有缩进。
这是一个例子:
ip_status=`ip -o addr | awk 'BEGIN { printf "%-12s %-12s %-12s\n", "INTERFACE", "PROTOCOL", "ADDRESS"
printf "%-12s %-12s %-12s\n", "---------", "--------", "-------" }
{ printf "%-12s %-12s %-12s\n", $2, $3, $4 }'`
echo -e "
->
$ip_status
->
"
运行时,$ip_status 的第一行与-> 对齐,但随后的行与-> 不对齐。
如果您在 bash 中运行它会更容易查看。这是输出:
->
INTERFACE PROTOCOL ADDRESS
--------- -------- -------
lo inet 127.0.0.1/8
lo inet6 ::1/128
eth0 inet 10.0.2.15/24
eth0 inet6 fe80::a00:27ff:fed3:76c/64
->
我希望$ip_status 中的所有行都与-> 对齐,而不仅仅是第一行。
【问题讨论】:
-
您可以使用
sed添加空格,例如:echo "$ip_status" | sed 's/^/ /'
标签: bash