我正在尝试使用带有新行的“sed”,但我想在 var 中使用此新行,如下所示:
#!/bin/sh
var1='tags'
var2='aw1 \n
aw2 \n
aw3'
sed -i ':a;N;$!ba;s@'"$var1"'@'"$var2"'@g' *.html
我想将tags
文档中的图案替换为文档中的多行var2
。
BEFORE:
tags
AFTER
aw1
aw2
aw3
答案1
如果我理解正确的话,它应该很简单,只需用“\n”替换每个 ENTER 即可。例如:
sed "s/tags/aw1\naw2\naw3/g" file
不要同时使用 (ENTER 和 \n)。如果我理解了这个问题,请告诉我。
而且……我刚刚忘了:如果你需要把它放在变量中,你应该“双重转义” \n。就像
v=tags; c=aw1\\naw2\\naw3; sed "s/$v/$c/g" *.html