LINUX.ORG.RU

Помогите написать правило для sed

 ,


0

1

Здравствуйте! Задача найти все файлы, в которых есть текст заключенный в теги:

<or123></or123>
........
<or123></or123>
и удалить эти теги и весь текст, который между ними, "...." в данном случае.

С grep понятно, не могу корректно написать правило для sed. пробовал так:

sed '/<or123><\/or123>/,/<or123><\/or123>/d' path/to/file/sindex.html

Удаляет все от первого вхождения <or123></or123> до конца файла. Но там есть несколько «полезных тегов».

Помогите разобраться.



Последнее исправление: maroz89 (всего исправлений: 1)
Ответ на: комментарий от salsa

в первом посте поправил, такой вариант не совсе корректно работает для выражения типа:

<or123></or123> 
<hr/> 
</body></</script><or123></or123></body></html> 

Удаляет все до конца файла, вместе с </body></html>

maroz89
() автор топика
Ответ на: комментарий от maroz89

или для такого варианта

</script><dfsdf><or123></or123> 
<hr/> 
</body></</script><or123></or123></body></html> 
Убивает и нужный код в начале и конце строки, в которой найден <or123></or123>

maroz89
() автор топика
Ответ на: комментарий от maroz89

Кстати, sed, в случае отсутствия шаблона, использует последний использовавшийся, так что можно просто

sed '/<or123><\/or123>/,//d' sindex.html

salsa
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.