如何在开头添加空格行,并在sed结尾处加反斜杠?

时间:2014-09-11 14:46:20

标签: bash awk sed

我知道在文件中另一行之后添加一行的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

4 个答案:

答案 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