Sed REG exp在行尾求反

Sed REG exp在行尾求反,sed,Sed,我有这样的结尾行 "true"/> testname="A01 "true"> Prop> testname="A02 想要在包含testname=“A0”的行末尾插入一些文本 我尝试了以下选项 sed -i 's/!>$/_\" enabled=\"true\">/g' file sed -i 's/!>\\n/_\" enabled=\"true\">/g' file 但是,它没有反映在文件中。 需要对此进行任何调整。请在这方面帮助我您可以使用a

我有这样的结尾行

"true"/>
testname="A01
"true">
Prop>
testname="A02
想要在包含testname=“A0”的行末尾插入一些文本

我尝试了以下选项

sed -i 's/!>$/_\" enabled=\"true\">/g' file
sed -i 's/!>\\n/_\" enabled=\"true\">/g' file
但是,它没有反映在文件中。
需要对此进行任何调整。请在这方面帮助我

您可以使用
awk

awk '/="A0[0-9]+$/ {$0=$0" blabla"}1' file
"true"/>
testname="A01 blabla
"true">
Prop>
testname="A02 blabla
要更新原始文件,请执行以下操作:

awk '/="A0[0-9]+$/ {$0=$0" blabla"}1' file > tmp && mv tmp file

小心使用sourroung空格(下面的代码在模式中不使用任何空格)


不需要选项
g
,因为您添加了一行,并且sed(默认情况下)逐行工作

尝试下面的GNU
sed
命令

sed -ri '/A0[0-9]+$/ s/(^.*testname=")(.*)$/\1\2_" enabled="true">/g' file
示例:

$ sed -r '/A0[0-9]+$/ s/(^.*testname=")(.*)$/\1\2_" enabled="true">/g' c
"true"/>
testname="A01_" enabled="true">
"true">
Prop>
testname="A02_" enabled="true">

输入似乎是XML。使用适当的XML解析器对其进行修改。发布一些输入和输出示例。嗨,Miindlek,在输出中,我没有看到文件中有任何更改。Iput文件是XML文件
$ sed -r '/A0[0-9]+$/ s/(^.*testname=")(.*)$/\1\2_" enabled="true">/g' c
"true"/>
testname="A01_" enabled="true">
"true">
Prop>
testname="A02_" enabled="true">