使用sed插入双反斜杠

时间:2013-06-30 20:09:20

标签: sed escaping backslash

我想插入一行

text \\

通过sed进入文件。要插入一个反斜杠,我会在命令中使用三个反斜杠。但转义不适用于两个反斜杠:

sed -i 'text \\\\\\' $file

给出以下错误:

sed: -e expression #1, char 57: unknown command: `
'

3 个答案:

答案 0 :(得分:3)

做类似的事情:

sed -i 's/OLDTEXT/text \\\\/' $file

尝试添加2. 3表示1,4表示2等时需要4个反斜杠:)

答案 1 :(得分:1)

使用如下输入文件:

apple
orange
grape

您可以在text \\前面插入orange,如下所示:

sed -i 's/^orange/text \\\\\n&/' input.txt

这实际上与orange开头的行匹配,将匹配的字符串替换为text \\ +换行符+匹配的字符串,有效地在行前插入text \\ ,那就是:

apple
text \\
orange
grape

请注意,插入2需要4个反斜杠。我不知道你的意思是3个反斜杠,你必须忽略那里的东西。

答案 2 :(得分:1)

这可能适合你(GNU sed):

sed -i '/PATTERN/i\text \\\\' file

这将覆盖原始file并在包含单词text \\的行之前插入PATTERN