保留sed替换模式中的换行符

时间:2015-10-21 10:31:18

标签: bash shell sed

所以我有一个实现简单液体模板的bash函数:

 <?php
 }
 ?>

这样template () { key=$(echo "$2" | tr -d '[:space:]') # escape slashes value=$(echo $3 | sed -e 's/\\/\\\\/g' -e 's/\//\\\//g' -e 's/&/\\\&/g') echo "$1" | sed "s/{{$key}}/$value/g; s/{{$key:[^}]*}}/$value/g" } 会在给定的template foo bar zorp模板中将{{bar}}替换为zorp

我的问题是将此函数的输出作为值反馈导致换行被删除,并最终从行长度限制中查出错误。有没有办法逃脱换行符,以便它们完整地通过模板?

1 个答案:

答案 0 :(得分:0)

这不是剥离你的新行的sed,它是你处理输出的方式。如果您将输出捕获到新模板中,请注意不要“压扁”它。

foo2=$(template "$foo" bar zorp)
foo3=$(template "$foo2" moo burp)