LINUX.ORG.RU

sed Как удалить часть строки со спецсимволом?

 


0

1

У меня есть строка вида

«some text </p><p>* some more text *</p> even more text»

Как удалить все, что идет после <p>* до следующего символа * включительно?

Пробовал sed -e 's/\(^<p>*\)\(.*\)\(*.*\)/\1\3/'

Удаляет все до второго символа *, ято не нужное поведение

Если заэкранировать первый символ * в sed -e 's/\(^<p>\*\)\(.*\)\(*.*\)/\1\3/' - не удаляет ничего.

На выходе должна получиться строка «some text </p><p>*</p> even more text»



cat test
123<p>*asdasdasd*</p>123
sed 's/<p>.*<\/p>//' test 
123123
Cahesard
()
sed 's/<p>\*.*\*/<p>*/g'


удаляет все, что идет после <p>* до следующего символа * включительно:

$ echo "qwe</p><p>*asd*df</p>" | sed 's/<p>\*.*\*/<p>*/g'
qwe</p><p>*df</p>

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