我想使用 sed 在模式之前插入一行: - Insert 'XmlRootElement(name="ABC")' before "public class"
这是脚本:
'/public class/i\@XmlRootElement(name="ABC")'
Run Code Online (Sandbox Code Playgroud)
但是,当我运行此命令时出现错误:
sed -e script testfile.txt
sed: -e expression #1, char 13: Unterminated `s' command
Run Code Online (Sandbox Code Playgroud)
谁能帮我?
谢谢
对于我习惯的 sed,您必须在 后包含换行符i\,并用空行“终止”插入,即
sed '/public class/i\
@XmlRootElement(name="ABC")
' file > outFile
Run Code Online (Sandbox Code Playgroud)
请注意,新插入的文本后面有一个空行。
请注意,请确保在行尾、 后没有任何空格i\。
我现在意识到,您将 sed 保存在单独的脚本文件中,格式限制也适用于此,只需删除''代码周围的对即可。
更重要的是,您的脚本失败了,因为您使用-esed 脚本文件,使用
sed -f script testfile.txt
Run Code Online (Sandbox Code Playgroud)
-e如果您内联嵌入 sed 脚本,则使用,我上面的第一个解决方案可以预先加上-e.
编辑a\对“i\”的固定引用。多阿
希望这可以帮助。