Редактировать файлы HTML из командной строки

С функцией awk sub :

awk '{ sub("_.*","",$1) }1' OFS='\t' file

Вывод:

7   98.97
7   98.59
7   98.79
7   98.93
7   98.57
7   99.70
7   99.13
1
07.03.2017, 09:53
1 ответ

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

XLST может работать, но я в этом сомневаюсь. Он расположен поверх XML, а HTML — слишком неправильный язык разметки, чтобы вписаться в этот жесткий синтаксис: особенно если вы начнете сбрасывать CSS поверх него.

Я бы выбрал библиотеку Perl HTML::Parser (или, может быть, одну из ее друзей в дереве модулей HTML, если у них есть специализированный инструмент для ваша общая задача). Он анализирует HTML-документы в небольшом внутреннем дереве базы данных, а затем вы можете манипулировать им и выгружать его обратно. Я использую его все время, чтобы делать такие вещи, как: избавиться от всех тегов и содержимого iframe; избавиться от всех HTML-тегов, но распечатать что-то близкое к предполагаемому форматированию в открытом тексте; и действительно сложные скребковые двигатели.

Он действительно прост в использовании и делает всю тяжелую работу за вас. См. примеры на странице CPAN.В дистрибутив также входит больше примеров для таких вещей, как удаление определенных тегов/элементов и/или атрибутов.

Помните, что еще в каменном веке Perl правил Интернетом и был в основном занят распространением HTML, так что Монахи Perl десятилетиями оттачивали свои HTML-инструменты.

0
28.01.2020, 01:00

Теги

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