Eu filtraria o arquivo usando tidy
, para colocar cada tag de nível superior em uma coluna separada linha e use algo mais adequado para esse tipo de script (como Perl) para manipular a marcação. sed
é mais útil quando as alterações são muito simples.
Por exemplo, um fragmento desta página (depois da filtragem) seria assim (usando tidy -wrap 4096
para reduzir as linhas quebradas):
<body class="question-page new-topbar">
<noscript>
<div id="noscript-padding"></div>
</noscript>
<div id="notify-container"></div>
<div id="overlay-header"></div>
<div id="custom-header"></div>
<div class="topbar">
<div class="topbar-wrapper">
<div class="js-topbar-dialog-corral">
<div class="topbar-dialog siteSwitcher-dialog dno">
<div class="header">
<h3><a href="//unix.stackexchange.com">current community</a></h3>
</div>
<div class="modal-content current-site-container">
<ul class="current-site">
As tags "a"
, etc., serão inline, mas a estrutura da página é mais simples de trabalhar.
Eu "baixei" a página usando lynx -source
. No entanto, você poderia usar uma variedade de ferramentas: wget
e curl
são mais usados para essa finalidade.