sed-在图案前插入一行

sed-在图案前插入一行,sed,Sed,我想在带有sed的图案前插入一行: -在“公共类”之前插入“XmlRootElement(name=“ABC”)” 以下是脚本: '/public class/i\@XmlRootElement(name="ABC")' 但是,运行此操作时出现错误: sed -e script testfile.txt sed: -e expression #1, char 13: Unterminated `s' command 有人能帮我吗 感谢对于我习惯的sed,您必须在I\之后包含换行符,并用空行“

我想在带有sed的图案前插入一行: -在“公共类”之前插入“XmlRootElement(name=“ABC”)”

以下是脚本:

'/public class/i\@XmlRootElement(name="ABC")'
但是,运行此操作时出现错误:

sed -e script testfile.txt
sed: -e expression #1, char 13: Unterminated `s' command
有人能帮我吗


感谢对于我习惯的sed,您必须在
I\
之后包含换行符,并用空行“终止”插入,即

sed '/public class/i\
@XmlRootElement(name="ABC")

' file > outFile
注:新插入文本后的空白行。

注意,确保在
i\
之后的行末尾没有空格

正如我现在意识到的,您将sed保存在一个单独的脚本文件中,格式约束也适用于此,只需删除围绕代码的
'
对即可

更重要的是,您的脚本失败了,因为您使用
-e
作为sed脚本文件,请使用

sed -f script testfile.txt
-e
用于在线嵌入sed脚本,我上面的第一个解决方案可以使用
-e
进行挂起

编辑将对
a\
的引用固定到'i\'。多阿


希望这能有所帮助。

对于我习惯的sed,您必须在
I\
之后包含换行符,并用空行“终止”插入,即

sed '/public class/i\
@XmlRootElement(name="ABC")

' file > outFile
注:新插入文本后的空白行。

注意,确保在
i\
之后的行末尾没有空格

正如我现在意识到的,您将sed保存在一个单独的脚本文件中,格式约束也适用于此,只需删除围绕代码的
'
对即可

更重要的是,您的脚本失败了,因为您使用
-e
作为sed脚本文件,请使用

sed -f script testfile.txt
-e
用于在线嵌入sed脚本,我上面的第一个解决方案可以使用
-e
进行挂起

编辑将对
a\
的引用固定到'i\'。多阿


希望这有帮助。

这可能对您有用:

# cat <<\! >/tmp/test.sed
> /^aaa/i\
> xxx
> /^bbb/a\
> yyy\
> zzz
> /^ccc/c\
> the end
> !
# echo -e "aaa\nbbb\nccc" | sed -f /tmp/test.sed 
xxx
aaa
bbb
yyy
zzz
the end

一个非常有用的参考是

这可能对您有用:

# cat <<\! >/tmp/test.sed
> /^aaa/i\
> xxx
> /^bbb/a\
> yyy\
> zzz
> /^ccc/c\
> the end
> !
# echo -e "aaa\nbbb\nccc" | sed -f /tmp/test.sed 
xxx
aaa
bbb
yyy
zzz
the end

非常有用的参考资料是

谢谢。它起作用了!仅供参考,我在UnxUtils.zip中使用了用于windows的sed。脚本放在文本文件中,在删除单个引号时工作是的,刚刚完成编辑,提到该选项。谢谢你的投票。祝你好运,谢谢。它起作用了!仅供参考,我在UnxUtils.zip中使用了用于windows的sed。脚本放在文本文件中,在删除单个引号时工作是的,刚刚完成编辑,提到该选项。谢谢你的投票。祝你好运