我想插入行
text \\
通过 sed 进入文件。要插入一个反斜杠,我会在命令中使用三个反斜杠。但是转义不适用于两个反斜杠:
sed -i 'text \\\\\\' $file
给出以下错误:
sed: -e expression #1, char 57: unknown command: `
'
执行以下操作:
sed -i 's/OLDTEXT/text \\\\/' $file
尝试添加 2 时,您需要 4 个反斜杠。3 表示 1,4 表示 2 等 :)
使用这样的输入文件:
apple
orange
grape
你可以像这样插入text \\
前面:orange
sed -i 's/^orange/text \\\\\n&/' input.txt
这实际上是匹配以 开头的行orange
,将匹配的字符串替换为text \\
+ 换行符 + 匹配的字符串,有效地插入text \\
到该行的前面,即:
apple
text \\
orange
grape
请注意,插入 2 个反斜杠需要 4 个反斜杠。我不知道您的意思是 1 的 3 个反斜杠,您一定忽略了那里的某些东西。
这可能对您有用(GNU sed):
sed -i '/PATTERN/i\text \\\\' file
这将覆盖原始file
并text \\
在包含单词的行之前插入PATTERN
。