LINUX.ORG.RU

Удалить все комментарии и теги HTML

 , , ,


1

2

1)Написать скрипт для sed для удаления тегов и комментариев HTML из заданного файла. Теги и комментарии могут быть многострочными. Обеспечить правильную подстановку для знаков <, >, & и ". 2)Как задание 1, но на awk.

Есть 2 таких задания. Я не совсем понял какие теги нужно удалить, а так же про подстановку для знаков. Если у кого то есть готовый скрипт или идеи как его написать, то помогите, пожалуйста.

Это кто тебе такое задание задал? Передай ему что формулировать мысли надо яснее.
P.S. printf " > /path/to/target.file удалит все теги, обеспечит подстановку ничего на место <, >, & и ". И даже без sed-а

MrClon ★★★★★
()
Ответ на: комментарий от loweshv

Тогда препод запустит твой скрипт на произвольном файлике и трындец.

Суть в том, если ты не ходил по ссылке из первого ответа, что нельзя распарсить html с помощью регулярок. Просто для произвольно усложняющегося html будет экспотенциально расти длина регулярки.

Можешь попробовать что-нибудь типа tr '\n' '#' <source.html | sed 's/<[^>]*>//g' | tr '#' '\n', но это бесполезно.

anonymous
()
Ответ на: комментарий от anonymous

Все местные кукаретики, наяривающие на эту ссылку на SO, почему-то все, как один игнорируют второй ответ, где говорится, что известный корректный HTML вполне себе парсится, брат жив

zolden ★★★★★
()
Ответ на: комментарий от anonymous

нельзя распарсить html с помощью регулярок

Во-вторых, не просто можно, а именно с их помощью часто и делают. А во-первых, где вы вообще увидели хоть слово про регулярные выражения?

Что, разумеется, не отменяет того, что это форменное издевательство над неокрепшими мозгами — на Си такое написать будет проще, чем на Седе.

Zmicier ★★★★★
()
Ответ на: комментарий от Zmicier

А в-третьих, в регулярных выражениях — не регулярный язык.

i-rinat ★★★★★
()

В общем я вот так решил вопрос удаления всех тегов:

<sed -n '1h;2~1H;${g;s/<[^>]*>//g;p}' file.html >file2.txt

Как сюда можно добавить сюда удаление комментариев вида <!-- text --> и /*! text */, а также как это на awk-e написать?

loweshv
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.