Я хотел бы удалить определенные гиперссылки, которые содержат "legacy /" в URL во многих файлах HTML. Тем не менее, некоторые из них находятся в одной строке
<a href=".../legacy/..."> ... </a>\n
а другие нет. Как я могу использовать sed, чтобы заменить их все одновременно?
Пока я пробовал
sed -ri 's/(.+legacy\/[[:print:]]+<\/a>.*$)/<!--\1-->/g' wave-on-a-string.html
, который заменяет только гиперссылку в одной строке. Затем я понял, что sed читает только одну строку за раз. Однако я не смог выяснить, как сопоставить многострочный (с неопределенным числом) блок гиперссылки.
В HTML-файлах есть такое содержимое:
<a class="other-sim-page" href="legacy/wave-on-a-string.html" dir="ltr">
<table>
<tr>
<td>
<img style="display: block;" src="../../images/icons/sim-badges/flash-badge.png" alt="Flash Logo" width="44" height="44">
</td>
<td>
<span class="other-sim-link">原始模擬教學與翻譯</span>
</td>
</tr>
</table>
</a>
...
<p>瀏覽<a href="legacy/wave-on-a-string.html#for-teachers-header">更多活動</a>。</p>
...
<a href="legacy/radiating-charge.html" class="simulation-link">
<img class="simulation-list-thumbnail" src="../../sims/radiating-charge/radiating-charge-128.png" id="simulation-display-thumbnail-radiating-charge" alt="Screenshot of the simulation 電荷輻射" width="128" height="84"/><br/>
<strong><span class="simulation-list-title">電荷輻射</span></strong><br/>
<span class="sim-display-badge sim-badge-flash"></span>
</a>
...
, и он совпадает и заменяет только вторую гиперссылку, поскольку она находится в одной строке.
Я бы хотел заменить все блоки гиперссылок (<a href="..."> ... </a>
), даже если они растягиваются на несколько строк.