SED - wycinanie z jednej linii tekstu

Potrzebujesz pomocy z C, C++, perl, python, itp.
Spinaczu
Posty: 2
Rejestracja: 15 marca 2009, 02:11

SED - wycinanie z jednej linii tekstu

Post autor: Spinaczu »

Witam!

Bawiąc się SED'em natrafiłem na problem. Mam taki tekst:
<tr><td class="marked">Mur miejski (Poziom 6)</td><td class="marked" align="center"><span class="countdown" time="2085" reload="true">0:34:45</span></td><td class="marked" nowrap>w 01:44:56 </td><td class="marked">Anuluj</td></tr><tr><td>Młyn (Poziom 6)</td><td align="center">0:12:44</td><td nowrap>w 01:57:40 </td><td>Anuluj</td></tr><tr><td>Mur miejski (Poziom 7)</td><td align="center">1:13:20</td><td nowrap>w 03:11:00 </td><td>Anuluj</td></tr></table>
Starałem się to zrobić czymś w stylu:

Kod: Zaznacz cały

sed -n '/<tr><td>.*</td><td align="center">/'p
lub:

Kod: Zaznacz cały

sed -e 's/<\/td><td align="center">/xxxxxxx/g'
Pierwszy sposób (o ile nie jest z błędem w tym momencie) działał mi zwykle gdy tekst nie był w jednej linii.

Gdy staram się wyciągnąć tekst pomiędzy tagami, a znajduje się w jednej linii nic nie wychodzi.

Zależy mi na uzyskaniu tekstu w postaci:
Mur miejski (Poziom 6)
Młyn (Poziom 6)
Mur miejski (Poziom 7)
Bardzo proszę o pomoc.

Pozdrawiam.
Awatar użytkownika
Inquistor
Beginner
Posty: 122
Rejestracja: 25 września 2007, 20:48

Post autor: Inquistor »

Za pomocą takiej linijki:

Kod: Zaznacz cały

grep -E '>[A-Za-z ]*\(Poziom [0-9]\)<' plik -o
otrzymasz taki tekst:

Kod: Zaznacz cały

>Mur miejski (Poziom 6)<
>Młyn (Poziom 6)<
>Mur miejski (Poziom 7)<
Ot moja propozycja na rozwiązanie problemu ;-)
Spinaczu
Posty: 2
Rejestracja: 15 marca 2009, 02:11

Post autor: Spinaczu »

Dziękuję za odpowiedź, jak najbardziej przyda mi się to co napisałeś :)

Pozdr
ODPOWIEDZ