Как я могу удалить разделы HTML-файлов в пакете из 700 + файлов?

во-первых:


Я использую последнюю версию OSX и могу редактировать HTML-файлы с помощью CotEditor и KompoZer. Я, однако, неопытен с HTML-редакторами в целом:/


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

Проблема:


У меня есть чуть более 700 HTML-файлов под рукой Здесь, которые разделяют ту же основную структуру, они организованы во многих таблицах и Мне нужно удалить определенный контент из всех них, который состоит из всегда одних и тех же строк с заголовками и ниже столбцов с изменяющимся контентом. -- Если бы я мог указать что-то вроде "удалить весь столбец, содержащий, например, "имя" в верхней ячейке", это было бы сделано.
Кроме того, мне нужно удалить повторяющиеся части (которые теоретически можно найти и заменить для всех файлов... но, ну, в партии как-то)

вы можете мне помочь? Будет ли композер делать пакетный трюк или у вас есть другой рекомендация? Спасибо 🙂

-----редактировать-----


Я попробовал TextWrangler для его пакетного поиска и замены, и он очень хорошо работает с поиском повторяющегося кода во многих файлах, поэтому я знаю, как я получу те же самые биты из каждого файла. Это оставляет меня с изменяющимся содержанием.

есть ли способ найти содержимое между двумя повторяющимися точками?
Например, если я знал что-то до и после того, как содержание я хочу удалить всегда то же самое:

<tag> txt_a Content1_to_delete txt_b </tag>
<tag> txt_a Content2_to_delete txt_b </tag>
<tag> txt_a Content3_to_delete txt_b </tag>

так что мне нужен как найти и заменить между <tag> txt_a и txt_b </tag>
или даже найти и заменить, начиная с <tag> txt_a до txt_b </tag>

это хлопотно для меня, где мне действительно нужна помощь



----- EDIT2 - - - - -


После ответа Гомбая Сандора в сочетании с комментарием Dooley_labs у меня появились некоторые идеи, и пока sed вариант будет работать из терминала, я выбрал TextWrangler, чтобы сделать работу.


TextWrangler может найти и заменить несколько файлов, но также будет принимать регулярные выражения через опцию "grep". Я узнал о регулярных выражениях и смог решить свою проблему. "Волшебные" для меня стало символы правильно. Особенно простой .*. Для тех, кто хотел бы возиться с регулярными выражениями я рекомендую этот сайт, который я нашел очень полезный:
regexr.com

22
задан QuentinS
14.04.2023 13:13 Количество просмотров материала 3448
Распечатать страницу

1 ответ

наиболее распространенные общие IDE имеют функцию (regexp) поиска и замены в файлах (в структуре каталогов). Даже небольшие Редакторы склонны предлагать эту функцию; в Windows хорошим примером является NotePad++.

для OSX, где у вас есть обычные инструменты оболочки, это может быть типичная задача для sed, которая является самим редактором... очень особенный редактор.

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

$ cat just-an-html.html
<tag> txt_a Content1_to_delete txt_b </tag>
<tag> txt_a Content2_to_delete txt_b </tag>
<tag> txt_a Content3_to_delete txt_b </tag>
$ for HTML in *.html; do sed -e 's@\(tag> txt_a\) .*\(txt_b </tag\)@ @g' $HTML > $(basename $HTML html)htm ; done
$ ls *.htm
just-an-html.htm
$ cat just-an-html.htm
<tag> txt_a txt_b </tag>
<tag> txt_a txt_b </tag>
<tag> txt_a txt_b </tag>

также можно удалить подстроку непосредственно внутри файлов (-i: inplace), но я бы не рекомендовал этого делать, если у вас нет актуальных резервных копий.

$ cat just-an-html.html
<tag> txt_a Content1_to_delete txt_b </tag>
<tag> txt_a Content2_to_delete txt_b </tag>
<tag> txt_a Content3_to_delete txt_b </tag>
$ for HTML in *.html; do sed -i -e 's@\(tag> txt_a\) .*\(txt_b </tag\)@ @g' $HTML  ; done
$ cat just-an-html.html
<tag> txt_a txt_b </tag>
<tag> txt_a txt_b </tag>
<tag> txt_a txt_b </tag>
0
отвечен Gombai Sándor 2023-04-15 21:01

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх