Добавить последовательную нумерацию в файлы HTML

266
nqw1

У меня есть куча файлов HTML и изображений. Файлы HTML называются page1.html, page2.html, page3.html и т. Д. Изображения называются одинаково. Image1.jpg, image2.jpg, image3.jpg и т. Д. Каждый HTML-файл имеет одну ссылку на файл изображения.

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

и эта ссылка должна указывать на файл изображения с тем же номером, что и файл HTML. Как добавить последовательную нумерацию в файлы HTML, чтобы из page1.html была ссылка на image1.jpg и т. Д.? Есть ли какая-нибудь программа (для Windows) или я могу использовать командную строку?

1

3 ответа на вопрос

1
root

Powershell - отличное решение для этого.

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 $_  } 
0
Ignacio Soler Garcia

Маловероятно, что вы можете найти программное обеспечение, которое может сделать это, поскольку это что-то очень конкретное. Вы можете создать собственный PowerShellскрипт для этого, но это не будет очень легко, если вы не привыклиPowerShell

Я думаю, что лучший вариант, который у вас есть, это разделить HTML и изображения в папках с именами XXXX1, XXXX2, и внутри каждой папки просто есть файл HTML без цифр и изображение без цифр.

0
G-Man

Я знаю, что вы отметили вопросов, но вы также отметили его , так что ...

Если у вас есть доступ к инструментам GNU / Unix (включая подсистему Windows для Linux или подсистему Linux в Windows (или как она называется), Bash в Ubuntu в Windows, Cygwin и т. Д.), Вы можете сделать это довольно легко: укажите dirимя каталог, в котором находятся файлы (могут быть ) и выполняются"."

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

Он просматривает все файлы в каталоге, чьи имена начинаются pageи заканчиваются .html, извлекает все, что находится между ними (что должно быть номером файла), и редактирует <img>элемент, чтобы изменить имя файла изображения.

Похожие вопросы