sed: захватить первый экземпляр HTML-тега - PullRequest
0 голосов
/ 30 ноября 2018

У меня есть HTML-файл, который использует тег <table> несколько раз по всему сценарию.Я хочу использовать sed для захвата и вывода на консоль только первого экземпляра, в котором используется тег <table>.

Это фрагмент HTML-кода, который я пытаюсь проанализировать.Существует более 10 экземпляров тега <table>.

Мой HTML:

<table border="0" class="first">
  <tr class="a">
     <th>Tests</th>
     <th>Errors </th>
  </tr>
  <tr class="b">
     <td>32</td>
     <td>0</td>
  </tr>
</table>
<table border="0" class="second">
  <tr class="c">
     <th>Tests</th>
     <th>Errors </th>
  </tr>
  <tr class="d">
     <td>32</td>
     <td>0</td>
  </tr>
</table>

Вот код, который я запускаю

sed -n 's:.*<table\(.*\)</table>.*:\1:p' surefire-report.html

Я хочубыть в состоянии захватить все в течение первого <table> div.Таким образом, вывод должен быть таким:

<table border="0" class="first">
  <tr class="a">
     <th>Tests</th>
     <th>Errors </th>
  </tr>
  <tr class="b">
     <td>32</td>
     <td>0</td>
  </tr>
</table>

1 Ответ

0 голосов
/ 30 ноября 2018

Если я вас правильно понимаю, это должно сработать ...

FILE=surefire-report.html

START=$(grep -n -m1  "<table" $FILE | cut -d ':' -f1)
END=$(grep -n -m1 "</table" $FILE | cut -d ':' -f1)

sed -n -e "$START,$END p" $FILE
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...