1 votes

Ajouter une numérotation séquentielle dans les fichiers HTML

J'ai un tas de fichiers HTML et d'images. Les fichiers HTML sont nommés page1.html, page2.html, page3.html etc. Les images sont nommées de la même façon : image1.jpg, image2.jpg, image3.jpg etc. Chaque fichier HTML a un lien vers un fichier image.

<img src="image.jpg" alt="">

et ce lien doit pointer vers le fichier image portant le même numéro que le fichier HTML. Comment puis-je ajouter une numérotation séquentielle aux fichiers HTML de sorte qu'à partir de page1.html il y ait un lien vers image1.jpg et ainsi de suite ? Existe-t-il un programme (pour Windows) ou puis-je utiliser la ligne de commande ?

1voto

root Points 3412

Powershell est une excellente solution pour cela.

Set-Location "C:\htmlfiles"

# for each html file
gci *.html | % {

    # select the number from the filename
    $number = $_.BaseName -replace '\D+(\d+)','$1'

    # prepare the new image file name
    $newImageName = 'image' + $number + '.jpg'

    # get the content of the html file and replace the old image name with the new name
    (gc $_).Replace('image.jpg',$newImageName) | sc $_

}

0voto

Charles Points 1047

Il est peu probable que vous puissiez trouver un logiciel capable de faire cela, car il s'agit de quelque chose de très spécifique. Vous pourriez créer un PowerShell script pour le faire mais ce ne sera pas très facile si vous n'avez pas l'habitude de PowerShell

Je pense que la meilleure option est de séparer le HTML et les images dans des dossiers nommés XXXX1, XXXX2 et dans chaque dossier, il suffit d'avoir le fichier HTML sans numéro et l'image sans numéro.

0voto

Je sais que vous avez marqué la question lot , mais vous l'avez aussi étiqueté automatisation alors...

Si vous avez accès aux outils GNU/Unix (y compris Windows Subsystem for Linux ou Linux Subsystem on Windows (ou quel que soit son nom), Bash sur Ubuntu sur Windows, Cygwin, etc.) ), vous pouvez le faire assez facilement :  Définissez dir au nom du répertoire où se trouvent les fichiers (peut être "**.**" ) et exécute

for file in "$dir"/page*.html
do
    basename=${file%.html}
    number=${basename#$dir/page}
    sed -i "s/<img src=\"image.jpg\" alt=\"\">/<img src=\"image$number.jpg\" alt=\"\">/" "$file"
done

Il s'agit de todo dans le répertoire dont le nom commence par page et se terminent par .html , extrait ce qui se trouve entre les deux (qui devrait être le numéro de fichier), et édite le <img> pour modifier le nom de fichier de l'image.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X