使用变量打印sed的新行

时间:2014-05-23 10:18:45

标签: bash variables replace sed newline

我正在尝试使用变量THIS将'字符串'打印到新行之后。

sed -i '' 'string/a\
${THIS}
' "${f}"

按字面意思将“$ {THIS}”打印到文件中。我尝试使用sed的双引号,但这会导致错误消息:

“sed:1:”......“:命令a期望\后跟文字”

我也试过谷歌这个并且一直在浏览这个优秀的论坛但却找不到任何东西。

请问,好吗?谢谢!

1 个答案:

答案 0 :(得分:3)

它应该是这样的:

THIS="foo"
sed 's/string/string\n'"${THIS}"'/g' file.txt

顺便说一下,如果您不确定我鼓励您使用-i选项时要小心。我会使用sed命令,直到我确定并且只使用-i(这将覆盖原始文件)


如果要替换文字字符串(无正则表达式),replace命令可能比sed更好:

replace string "string"$'\n'"${THIS}" file.txt