0

我想插入行

text \\

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

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

给出以下错误:

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

3 回答 3

5

执行以下操作:

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

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

于 2013-06-30T20:16:37.217 回答
1

使用这样的输入文件:

apple
orange
grape

你可以像这样插入text \\前面:orange

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

这实际上是匹配以 开头的行orange,将匹配的字符串替换为text \\+ 换行符 + 匹配的字符串,有效地插入text \\到该行的前面,即:

apple
text \\
orange
grape

请注意,插入 2 个反斜杠需要 4 个反斜杠。我不知道您的意思是 1 的 3 个反斜杠,您一定忽略了那里的某些东西。

于 2013-06-30T20:24:06.213 回答
1

这可能对您有用(GNU sed):

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

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

于 2013-07-01T05:33:42.280 回答