@oleww05

Как вывести в одну строку?

Есть таблица:
<table class="searchDetails">
          <tr>
            <th>Автор:
            </th>
            <td><span class="hl_none">Ф. И. О.</span>
            </td>
          </tr>
          <tr>
            <th>Сведения:
            </th>
            <td><span class="hl_none">ППП., 2011</span>
            </td>
          </tr>
          <tr>
            <th>Тематика:
            </th>
            <td><span class="hl_none">ООО</span>
            </td>
          </tr>
      </table>
        <div class="searchLink"></div>
И Т.Д.

Нужно вывести содержимое "searchDetails" в одну строку, например:
Автор: Ф. И. О. Сведения: ППП., 2011 Тематика: ООО
Автор: Ф. И. О. Организация: ООО "ЗАО" Сведения: ППП., 2011 Тип документа: DOC
И Т.Д.

Использую такой скрипт:
#!/bin/bash
A=$(cat table.htm | sed -n -e '/<table class=\"searchDetails\">/,/<div class=\"searchLink\">/ p' | grep "<span class=\"hl_none\">" -B 2 | grep "<th>" | sed -e 's/<th>//' -e 's/            //' | tr -d '\r')
A2=$(cat table.htm | sed -n -e '/<table class=\"searchDetails\">/,/<div class=\"searchLink\">/ p' | grep "<span class=\"hl_none\">" | sed -e 's/.*<span class=\"hl_none\">//' -e 's/<\/span>//' | tr -d '\r')
B=$(paste -d " " <(echo "$A") <(echo "$A2"))
echo "$B"

В итоге такой результат, но это неподходит:
Автор: Ф. И. О.
Сведения: ППП., 2011
Тематика: ООО
Автор: Ф. И. О.
Организация: ООО "ЗАО"
Сведения: ППП., 2011
Тип документа: DOC
И Т.Д.
  • Вопрос задан
  • 218 просмотров
Решения вопроса 1
@Vitsliputsli
С помощью sed примерно так:
sed -n '/<th>\|<td>\|<\/table/p' t.html | sed 's/^\s*//' | sed ':a; N; s/\n/ /; ta;' | sed 's/ <\/table> /\n/;s/<[^>]*>//g'
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы