Продолжаю изучать sed :)
подскажите пожалуйста, как можно в обрабатываемой строке удалить все, кроме вхождений регулярки?
Вообще задача такая, есть файл:
text1<A>link1<B> text2<A>link2<B>text3<A>link3<B>
text4<A>link4<B>
<links>
из которого требуется получить такое:
text1 text2text3
text4
link1
link2
link3
link4
по сути - собрать сноски и вывести их вместо строки <links>
на данный момент придумал только такое:
/\(<A>\)\(\([^<]\)*\)\(<B>)/{
H
x
{
/<A>\(\([^<]\)*\)<B>/{
s//\1/g
}
}
x
s///g
}
/<links>.*/{
x
p
x
}
Но работает не доконца как нужно..в конце выводит и текст и линк.
поэтому и возник у меня такой вопрос - как можно из строки удалить ВСЕ кроме вхождений части регулярного выражения (в моем варианте надо сохранить то, что находится между <A> и <B>)?