我知道在文件中另一行之后添加一行的sed语法,即
sed -i '/LINE1/a LINE2' FILE
在FILE中LINE1之后添加LINE2是否正确?如何在末尾添加带反斜杠的行?例如,来自
This is a a line \
Indented line1 \
Indented line2 \
Line3
要
This is a a line \
Indented line1 \
Indented line2 \
Added line \
Line3
答案 0 :(得分:6)
只需将反斜杠放入并转义:
sed -i '/line2/a Added line \\' FILE
如果你想要四个空格的缩进,那么:
sed -i '/line2/a \ Added line \\' FILE
答案 1 :(得分:1)
您可以使用insert命令:
sed '/\\$/!i \ Added line \\' file
答案 2 :(得分:1)
只需使用awk,sed最适合单行上的简单替换,不适用于任何涉及多行或其他任何远程复杂的行:
$ awk '{print} /line2/{ print substr($0,1,match($0,/[^[:space:]]/)-1) "Added line \\" }' file
This is a a line \
Indented line1 \
Indented line2 \
Added line \
Line3
无论您的前导空格是什么,上面都会将您添加的行与前一行的缩进对齐,因为它只是用替换文本替换空格后的任何内容。
答案 3 :(得分:0)
这对你有用吗?
awk 'NR==3{$0=$0 "\n\tAdded Line \\"}7' file