Как установить переменные среды на постоянной основе для одного пользователя [дубликат]

В идеале это должно быть сделано на таких языках, как perl или python , которые имеют хорошие библиотеки синтаксического анализа HTML. Но если вы хотите сделать это в сценарии оболочки, вы можете установить пакет xml2 , который предоставляет инструменты под названием html2 и 2html для преобразования HTML в и из формат плоских файлов, подходящий для использования с линейно-ориентированными инструментами, такими как sed , grep , awk и т. д.

Он также содержит аналогичные инструменты для работы с файлами XML и CSV.

Затем вы можете использовать sed для преобразования пробелов в совпадающих строках img src в тире. Затем конвертируйте обратно в HTML.

Например, используя образец строки html:

$ cat file.html 


$ html2 < file.html  | sed -e '\:/img/@src=/images/: s/ /-/g' | 2html 

Перенаправьте вывод из него, например, в file.new.html . а затем mv -f file.new.html file.html , если вы хотите заменить исходный файл измененной версией. Я настоятельно рекомендую сохранить резервную копию исходных файлов, чтобы в случае ошибки можно было вернуться к заведомо хорошей отправной точке.

Кстати, формат плоских файлов, созданный html2 , выглядит следующим образом:

$ html2 < file.html 
/html/body/img/@class=photo
/html/body/img/@width=400
/html/body/img/@height=600
/html/body/img/@src=/images/red roses in summer 54.jpg
/html/body/img/@alt

xml2 упакован для Debian и Ubuntu и, возможно, других дистрибутивов Linux. Если он недоступен в готовом виде для вашего unix, вы можете найти исходный код по ссылке выше.

Есть много способов внести эти изменения во множество файлов. Вот простой пример цикла для .

for htmlfile in *.html ; do

   html2 < "$htmlfile" |
       sed -e '\:/img/@src=/images/: s/ /-/g' |
       2html > "$htmlfile.new" \
   && mv -f "$htmlfile.new" "$htmlfile"

done

ВНИМАНИЕ: проверьте, что это делает то, что вы ожидаете , прежде чем запускать его на большом количестве файлов HTML.И сохраните резервную копию оригиналов. Если HTML в ваших файлах не является полностью допустимым HTML (т.е. если он не проходит проверку синтаксиса HTML), то html2 | ... | 2html может сделать ваши HTML-файлы еще более поврежденными, чем они есть.

Если файлов слишком много или файлы находятся в нескольких подкаталогах, вам придется использовать find ... -exec . Есть бесчисленное множество примеров использования find здесь, на этом сайте.

1
13.04.2017, 15:36
0 ответов

Теги

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