Как поменять много url в 4000 html файлов?

Есть абсолютно идентичных 4000 html файлов . В них есть фраза qwerty , как вместо qwerty заменить на имя файла?

Так как все файлы пронумерованы по порядку от 1 до 4000, то можно вместо qwerty вбить по порядку цифры в каждый файл: 1..2..3..4..5......4000

В данном скриншоте вместо qwerty нужно поставить 1601, в следующем файле нужно вместо qwerty поставить 1602 и так далее. скриншот


Ответы (2 шт):

Автор решения: dmitriy_vlz

Я бы написал небольшой скрипт на nodejs. Я писать его полностью сюда не буду, но попробую дать наводку

  1. Получил все файлы из папки

     var files = fs.readdirSync(dir);
       for (var i in files){
          //тут получил бы имя файла и вызвал ф-ю для замены текста
       }
    
  2. Написал ф-ю для замены текста

        fs.readFile(someFile, 'utf8', function (err,data) {
           if (err) {
             return console.log(err);
           }
           var result = data.replace(/string to be replaced/g, 'replacement');        
           fs.writeFile(someFile, result, 'utf8', function (err) {
              if (err) return console.log(err);
           });
         });
    

Ну или можно код ф-ии для замены прям в цикл вставить. Ну как-то так.

→ Ссылка
Автор решения: LeFroys

Для примера вот так это можно сделать на питоне. Соответственно необходимо заменить путь до файлов в open (вместо D:\ на свой). В каждом файле от 1.html до 3999.html будут заменены все слова qwerty на номер файла. Если это файл 20.html и qwerty-12 то будет 20-12. Только предварительно сохраните ваши файлы, т.к решение я не проверял.

 for i in range(1,4000):
    
        try:
            with open('D:\\'+str(i)+'.html', 'r') as f:
                text = f.read()
    
            text = text.replace('qwerty',str(i))
    
            with open('D:\\'+str(i)+'.html', 'w') as f:
                f.write(text)
        except:
            print ("Файл не существует")
→ Ссылка