Удалить html-теги в sed или аналогичные
Я пытаюсь извлечь содержимое таблицы из страницы. Мне нужно содержимое, но не теги <tr></tr>
. Мне даже не нужно "tr" или "td" только содержание. например:
<td> I want only this </td>
<tr> and also this </tr>
<TABLE> only texts/numbers in between tags and not the tags. </TABLE>
также я хотел бы поместить первый вывод столбца, как это в новый файл csv колонка 1, info1, info2, info3 coumn2, info1, info2, info3
Я попытался sed удалить patters <tr>
<td>
но когда я получаю таблицу, есть и другие теги, такие как <color>
<span>
etc. поэтому я хочу удалить все теги; короче говоря, все с .
2 ответов
sed 's/<[^>]\+>//g'
удалит все теги, но вы можете заменить их пробелом, чтобы теги, которые находятся рядом друг с другом, не работали вместе: <td>one</td><td>two</td>
становится: onetwo
. Так что вы могли бы сделать sed 's/<[^>]\+>/ /g'
таким образом, он будет выводить one two
(ну, на самом деле one two
).
это сказано, Если вам не нужен только необработанный текст, и похоже, что вы пытаетесь выполнить некоторые преобразования данных после удаления тегов, язык сценариев, такой как Perl, может быть более подходящим инструментом для этого с.
поскольку mu слишком короткий, упомянутый выскабливание HTML может быть немного рискованным, используя то, что на самом деле анализирует HTML для вас, было бы лучшим способом сделать это. PHPs DOM API довольно хорошо для таких вещей.
Оригинал:
регулярное выражение терминала Mac ведет себя немного иначе. Я смог сделать это на своем Mac, используя следующий пример:
$ curl google.com | sed 's/<[^>]*>//g'
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 219 100 219 0 0 385 0 --:--:-- --:--:-- --:--:-- 385
301 Moved
301 Moved
The document has moved
here.
$ bash --version
GNU bash, version 3.2.57(1)-release (x86_64-apple-darwin14)
Copyright (C) 2007 Free Software Foundation, Inc.
Edit:
просто для разъяснения ради origional выглядел так:
$ curl googl.com
<HTML><HEAD><meta http-equiv="content-type" content="text/html;charset=utf-8">
<TITLE>301 Moved</TITLE></HEAD><BODY>
<H1>301 Moved</H1>
The document has moved
<A HREF="http://www.google.com/">here</A>.
</BODY></HTML>
также раздражающий заголовок curl может быть избавлен от использования опции-s:
$ curl -s google.com | sed 's/<[^>]*>//g'
301 Moved
301 Moved
The document has moved
here.
$