При использовании grep на файлах HTML, как я могу отобразить только текст а не теги?

У меня есть wgot большой веб-сайт. Вместо того, чтобы настраивать механизм локального поиска, я использую grep для поиска сайта. Вывод Grep показывает HTML (конечно), но я только хочу видеть текст (и не все теги HTML).

Как я могу выполнить это?

0
задан 1 January 2015 в 02:49

2 ответа

Одно решение, которое я нашел, передает вывод grep по каналу к html2text:

sudo apt-get install html2text
grep "som* interesting" | html2text

Это в основном работает, но этому не удается a) сохранить цветное выделение grep, b) использовать unicode и c) заменить определенные символы. Вот более полная альтернатива, которая не имеет этих недостатков.

grep --color=always "test*" * | html2text -utf8 | sed 's/l&rsquo/\"/'

, Конечно, можно отредактировать поток с помощью sed для изменения других элементов также.

1
ответ дан 6 October 2019 в 05:35

Используйте lynx команда и установите ее следующим:

sudo apt-get install lynx-cur

Посмотрите ввод и вывод здесь

$ lynx --dump infile.html | grep 'PATTERN'
HTML Tables

   HTML tables start with a table tag.

   Table rows start with a tr tag.

   Table data start with a td tag.
     __________________________________________________________________

1 Column:

   100
     __________________________________________________________________

1 Row and 3 Columns:

   100 200 300
     __________________________________________________________________

3 Rows and 3 Columns:

   100 200 300
   400 500 600
   700 800 900
     __________________________________________________________________
<час>

Используя :

awk '{gsub(/<[^>]*>/,"")} /PATTERN/{# what you want to do }' infile
2
ответ дан 6 October 2019 в 05:35

Другие вопросы по тегам:

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