- 论坛徽章:
- 0
|
5可用积分
一个a.xml内容格式如下:
<para lifetime="2" subjectname="Subj_A" tablename="TAB_A" timekey="TIMEVALUE"/>
<para lifetime="2" subjectname="Subj_B" tablename="TAB_B" timekey="TIMEVALUE"/>
<para lifetime="2" subjectname="Subj_C" tablename="TAB_C" timekey="TIMEVALUE"/>
<para lifetime="2" subjectname="Subj_D" tablename="TAB_D" timekey="TIMEVALUE"/>
<para lifetime="2" subjectname="Subj_E" tablename="TAB_E" timekey="TIMEVALUE"/>
想找出文本中目前已知某个subjectname和tablename的值,根据这两个条件修改以上xml记录,将这两个作用条件匹配的行中lifetime修改成指定的数值。
比如变量subjectname="Subj_B",tablename="TAB_B", 这两个值作为变量传sed中,通过sed来修改lifetime的值, xml中属性顺序不固定,有可能tablename在subjectname前面。
请教一下如何用sed命令来实现.
我尝试了一下,不知道有没有bug
sed -i '/'${subjectname}'/{/'${tablename}'/s/lifetime="[0-9]*"/lifetime=\"'${lifetime}'\"/g}' |
最佳答案
查看完整内容
p 的位置有问题,或者放最后面,或者不要p,连 -n 也不要。当然,你不是要改文件吗?那需要 -i 选项了不是。
|