linux – sed用多行查找和替换两个标签
发布时间:2020-12-14 00:53:44 所属栏目:Linux 来源:网络整理
导读:我想找到并替换一个模式 text="hold1hold2 file option1='one'some textsome text ...... more data/filethis1that1"pattern="file.*/file"replacewith="sometextvalue1/sometext"output text="hold1hold2sometext value1/sometextthis1that1" 附: Stackove
我想找到并替换一个模式
text=" hold1 hold2 <file option1='one'> some text some text ... ... more data </file> this1 that1 " pattern="<file.*</file>" replacewith="<sometext> value1 </sometext>" output text=" hold1 hold2 <sometext> value1 </sometext> this1 that1 " 附: Stackoverflow上的这些问题没有帮助. Regex with sed,search across multiple lines 解决方法
使用sed你可以尝试类似的东西:
sed -e ':a;N;$!ba' -e 's#<file.*</file>#<sometext>nvalue1n</sometext>#' file 我的sed有点生疏,但我们在这里做的是使用:a; N; $!ba我们在模式空间中有效地创建了一条长行,以便我们可以应用第二个表达式替换它. 这可能需要GNU sed 测试: $cat file hold1 hold2 <file option1='one'> some text some text more data </file> this1 that1 $sed -e ':a;N;$!ba' -e 's#<file.*</file>#<sometext>nvalue1n</sometext>#' file hold1 hold2 <sometext> value1 </sometext> this1 that1 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |