LINUX.ORG.RU

Массово добавить блок в html-файлы

 , ,


1

1

Имеется директория, где лежат html файлы, а так же ещё внутри есть директории с ними. Их там тысячи файлов и папок.

Как бы можно добавить новый div-блок с содержимым в каждый html-файл, допустим после тега <body>?

Как бы можно добавить новый div-блок с содержимым в каждый html-файл, допустим после тега <body>?

Как-нибудь сделать sed/perl «s#<body>#<body>твой div-блок#»?

crutch_master ★★★★★
()
Ответ на: комментарий от bvn13

уж не троянец ты пишешь, а?

Троян на html? :) Это просто статичный сайт с кучей страниц. Нужно просто добавить один новый блок на все страницы.

loopergood
() автор топика
Ответ на: комментарий от theNamelessOne

Берёшь Ruby/Python/Perl/etc., берёшь библиотеку для парсинга HTML, пишешь скрипт за вечер.

Думал о Python, но без библиотеки парсинга. Надо посмотреть.

loopergood
() автор топика
Ответ на: комментарий от crutch_master

Как-нибудь сделать sed/perl «s#<body>#<body>твой div-блок#»?

С первого взгляда вариант неплохой. Вот только в блоке много всякого. Задолбаешься экранизировать символы.

loopergood
() автор топика
Ответ на: комментарий от anonymous

xmlstarlet ed --subnode «/body» --type elem -n div -v «ололо» index.html > ../fixed/index.html

А как такое массово провернуть, если сработает?

loopergood
() автор топика
Ответ на: комментарий от loopergood
find /path/to/www/root -name "*.html" -exec xmlstarlet ed --inplace --subnode "/body" --type elem -n div -v "ололо" {} \;

как-то так. не тестил.

anonymous
()
Ответ на: комментарий от loopergood

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

crutch_master ★★★★★
()

В Geany можно делать замену слов во всех файлах в папке

atsym ★★★★★
()
Ответ на: комментарий от crutch_master

чем-нибудь хитрым, где уже всё заэкранировали

DocumentFragment в любом XML обработчике.

deep-purple ★★★★★
()
Ответ на: комментарий от loopergood

С первого взгляда вариант неплохой. Вот только в блоке много всякого. Задолбаешься экранизировать символы.

Ну запишите в файл вставку и тупо sed '/<body>/r file_with_div'

vodz ★★★★★
()
Ответ на: комментарий от Infra_HDC

Решарпер уже предлагали?

Это плагин для мелософтной фигни Visual Studio?

loopergood
() автор топика

Решил через поиск по файлам и замену в папке в Sublime Text.

loopergood
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.