我需要从文件根证书和密钥中删除,但似乎无法使用 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
以就地编辑文件。