Соответствие всем символам между <>, имеющим диапазон длины - PullRequest
0 голосов
/ 07 мая 2020

Я хочу захватить и удалить все символы между символами <> (включая <>), которые имеют длину от 2 до 5. Код должен захватить все это:

    </tr>
    <tr>
    <html>
    <body>

Я пробовал такие вещи, как безрезультатно:

sed 's/<.{2,5}>//g' file

sed 's/<...><....>$//g' file

Это html файл:

<html>
<head>
<title>Skywalker Saga Star Wars Movies</title>
</head>
<body>
  <table>
    <tr>
      <th>Movie title</th>
      <th>Release Year</th>
    </tr>
    <tr>
      <td>Episode IV: A New Hope</td>
      <td>1977</td>

Ожидаемый результат должен быть таким:

Skywalker Saga Star Wars Movies
Episode IV: A New Hope 1977
Episode V: The Empire Strikes Back 1980
Episode VI: Return of the Jedi 1983
Episode I: The Phantom Menace 1999
Episode II: Attack of the Clones 2002
Episode III: Revenge of the Sith 2005
Episode VII: The Force Awakens 2015
Episode VIII: The Last Jedi 2017
Episode IX: The Rise of Skywalker 2019

Спасибо.

1 Ответ

0 голосов
/ 07 мая 2020

Это работает с вашими образцами данных:

sed -n 's/.*>\(.*\)<.*/\1/p' test.html | grep -v "title\|Release" > tmp && { head -1 tmp ; tail -n+2 tmp | sed 'N;s/\n/ /'; }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...