Minha situação é simples: tenho um arquivo HTML com várias linhas contendo apenas a <section>
tag de bloco recuada , cada linha seguida por uma <h3 id="YYYY">...</h3>
tag de título (também recuada) .
Assim:
<section>
<h3 id="2024"><a href="index.fr.html#2024">fr</a> 2024 <a href="index.html#2024">en</a></h3>
Ao usar o link ancorado para ir para um ano específico dentro da página (ou sua tradução), o título do ano fica oculto atrás do <header>
.
O problema seria resolvido trocando o id
atributo uma linha acima da <h3>
tag <section>
,
assim:
<section id="2024">
<h3><a href="index.fr.html#2024">fr</a> 2024 <a href="index.html#2024">en</a></h3>
Existe um comando ou uma linha simples que me permita alternar todos esses id
atributos da <h3>
tag para a <section>
tag uma linha acima? Não descobri como combinar várias linhas em BSD
sed
ou especialmente awk
.
sed 's:<section>\(\s*\)<h3\( id="\[0-9\]{4}"\):<section\2>\1<h3:g' index.html
não altera o arquivo. Nem \n\t\t
no lugar de \s
, ou usando barras invertidas duplas escapa.
Existe uma opção para corresponder a caracteres de espaço como eu presumo GNU
sed
que seria? Talvez apenas a inserção/uso de novas linhas/tabulações diretamente no comando , mas eu gostaria de aprender melhor e também sou forçado, pois estou trabalhando remotamente e tenho que usar termux
em Android
... Também não sou habilidoso o suficiente para usar uma awk
solução alternativa.