Найдите все файлы HTML в наборе папок, извлеките определенное содержимое HTML и сохраните содержимое в новые файлы
У меня есть структура папок, содержащая тысячи файлов HTML, которые я хотел бы очистить и преобразовать в уценку с помощью pandoc, но сохранить в существующей структуре (или отразить структуру).
В настоящее время мне удалось найти все файлы HTML, используя find
, передал этот контент с помощью cat
команда для pup
который анализирует контент и смотрит на <article>
тег и передает содержимое в новый файл с именем article-content.txt.
Я думал обработать контент в два этапа.
- Извлеките тег статьи из каждого файла и сохраните как новый файл (или перезапишите существующие файлы).
- Затем преобразуйте ту же структуру с помощью pandoc.
Мое понимание bash ограничено. Я понимаю, что мне, вероятно, нужно перебрать список файлов и передать путь / имена файлов как переменные в новую файловую конструкцию. Но не знаю, куда идти дальше.
cat $(find . -type f -name "*.html") | pup 'article' > article-content.txt
1 ответ
Если вы хотите выполнить аналогичное действие с каждым файлом индивидуально, find
имеет -exec
а также -execdir
опции, встроенные именно для этой цели (см. man find
):
find . -type f -name "*.html" -execdir bash -c "pup 'article' < {} > {}.md" \;