我想插入一行
text \\
通过sed进入文件。要插入一个反斜杠,我会在命令中使用三个反斜杠。但转义不适用于两个反斜杠:
sed -i 'text \\\\\\' $file
给出以下错误:
sed: -e expression #1, char 57: unknown command: `
'
答案 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
。