bash多行字符串缩进问题?
问题:
怎么使字符串b输出时每行缩进4个空格?
希望得到的效果:
求教!
回答:
如果要求是除了第一行,都缩进,用sed很方便:
a="test message:"b="a\nb\nc\nd\n"
c="$a\n$b"
printf "$c" | sed '1!s/^/ /'
或者使用bash的参数替换功能,"\n"对bash来说,只是两个普通字符,在它后面加4个空格就是了:
printf "${c//\\n/\n }"
如果是希望给变量b加上缩进,那可以:
b="$(printf $b | pr -to4)"
回答:
a="test message:"s=" "
b="$s"a"\n$s"b"\n$s"c"\n$s"d"\n"
c="$a\n$b"
printf "$c"
回答:
a="test message"b="a b c d"
c="$a $b"
printf '%s %4s\n%4s\n%4s\n%4s\n%4s\n' $c
test message
a
b
c
d
回答:
可以这样:
a="test message:"b="\ta\n\tb\n\tc\n\td\n"
c="$a\n$b"
printf "$c"
以上是 bash多行字符串缩进问题? 的全部内容, 来源链接: utcz.com/p/193501.html