如何替换文件中的整个文本

如何替换文件中的整个文本

我需要从文件根证书和密钥中删除,但似乎无法使用 sed 正确执行此操作。

该文件大致如下:

here
there


<ca>
sdasd
dasda
</ca>
<cert>
asasda
asa
</cert>
<key>
asdadsas
</key>

我需要删除从 ca 到 key 的所有内容

答案1

要从中删除<ca></cert>您要么需要退出/内部</cert>

sed '/<ca>/,/<\/cert>/d' file

或者使用替代分隔符,例如

sed '\#<ca>#,\#</cert>#d' file

前任。

$ sed '\#<ca>#,\#</cert>#d' yourfile
here
there


<key>
asdadsas
</key>

无论哪种情况,添加-i--in-place选项都可以就地编辑文件。

答案2

perl可以进行多行匹配-0

perl -0pe 's/\n\<ca\>(.*\n)*?\<\/key\>//' file

添加-i以就地编辑文件。

相关内容