タグの内容に基づいてHTMLファイルの名前を変更する

タグの内容に基づいてHTMLファイルの名前を変更する

h1タグの内容に基づいて名前を変更したいhtmlファイルがたくさんあります。

Bashでこれを行う方法に関する提案はありますか?

ファイルの例:

<!DOCTYPE html><html lang="pt-BR"><head><meta charset="utf-8"><title>Repositório - MAIS</title>
 <script src="lib/tudo.js"></script>
 <link rel="stylesheet" href="lib/style.css">
</head>
<body>
<div id="cabecalho"></div>
<div id="corpo">
<h1>teste</h1>

<div class="Experimento"></div>
<div class="gallery">
<img class="image-gallery" src="img/2dados.png">
</div>

<br><br><strong>Mídia:</strong> experimento (uma aula dupla)

<br><br><strong>Descrição:</strong> este experimento propõe 4 jogos diferentes, todos baseados no lançamento de 2 dados comuns. Discutindo as chances de cada jogador vencer cada um dos jogos, os estudantes terão a chance de discutir vários conteúdos relacionados à probabilidade

<br><br><strong>Conteúdo:</strong> experimento aleatório, espaço amostral, eventos equiprováveis, probabilidade

<br><br><strong>Recomendação de uso:</strong> este experimento pode ser usado como introdução ou aplicação dos conceitos iniciais de probabilidade.

<br><br><strong>Autoria:</strong> este experimento foi desenvolvido pela <a class="externo" href="http://www.mais.mat.br" target="_blank">Mais</a> e pode ser utuilziado e distribído livremente, contanto que citada a autoria original.

<a class="download" href="http://www.mais.mat.br/recursos/images/5/5b/2dados.pdf">Baixar</a>

</div>
<div id="rodape"></div>
</body>
</html>

ファイル名を「teste.html」に変更したいと思います。

役に立つ場合、このタグは常にすべてのファイルの8行目にそのまま存在します(同じ行に他のタグはありません)。また、h1 は常に各ファイルに一度だけ表示されます。

ベストアンサー1

そして:

文書:

<!DOCTYPE html>
<html>
    <head>
        <title>test</title>
    </head>
    <body>
        <a>foo</a>
        <b>bar</b>
        <c>base</c>
    </body>
</html>

注文する:

for file in *.html; do
    tag=$(xmllint --xpath '//b/text()' $file)
    echo mv "$file" "${tag}_$file"
done

コメント:

テストが実際にコマンドを実行できるようになるまで、echoコマンドを延期します。

おすすめ記事