как заменить целый текст в файле

я должен удалить из корневых сертификатов файла и ключей, но, может казаться, не могу сделать это с sed правильно.

файл - что-то вроде этого:

here
there


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

Я должен удалить все от CA до ключа

0
задан 22 June 2017 в 00:55

2 ответа

Для удаления от <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 опция отредактировать файл на месте.

3
ответ дан 3 November 2019 в 01:29

perl может сделать, соответствие мультилинии -0

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

добавляет -i для редактирования файла на месте.

2
ответ дан 3 November 2019 в 01:29

Другие вопросы по тегам:

Похожие вопросы: