Найдите все файлы HTML в наборе папок, извлеките определенное содержимое HTML и сохраните содержимое в новые файлы

У меня есть структура папок, содержащая тысячи файлов HTML, которые я хотел бы очистить и преобразовать в уценку с помощью pandoc, но сохранить в существующей структуре (или отразить структуру).

В настоящее время мне удалось найти все файлы HTML, используя find, передал этот контент с помощью cat команда для pup который анализирует контент и смотрит на <article> тег и передает содержимое в новый файл с именем article-content.txt.

Я думал обработать контент в два этапа.

  1. Извлеките тег статьи из каждого файла и сохраните как новый файл (или перезапишите существующие файлы).
  2. Затем преобразуйте ту же структуру с помощью 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" \;
Другие вопросы по тегам