Bash, sed - wycinanie tekstu mi

Potrzebujesz pomocy z C, C++, perl, python, itp.
cleanix
Posty: 2
Rejestracja: 02 marca 2009, 22:35
Lokalizacja: PL

Bash, sed - wycinanie tekstu między 2 tagami html

Post autor: cleanix »

Witam!

Próbowałem wyciąć fragment tekstu ze strony, na podstawie (http://debian.linux.pl/viewtopic.php?t=11569).

Robiłem coś w stylu tego:

Kod: Zaznacz cały

sed -n '/\<div style="text-align:left; margin:10px">/,/\

strona/'p plik.txt
Ewentualnie dawałem więcej 'slaszy'; przed cudzysłowem.

Tak jak na nie działającym przykładzie zależy mi aby uzyskać tekst w formacie:
<h1>Zdążyć przed Panem Bogiem - streszczenie</h1>Tego dnia Marek miał
(...)
Słyszeli też muzykę, bojąc się, że zagłuszy ona ich krzyki i odgłosy walki, a wówczas nikt niczego nie zauważy.
Przykładowe źródło z klp.pl: http://wklej.org/id/59435/

Pozdrawiam.
snah
Beginner
Posty: 103
Rejestracja: 19 lutego 2008, 09:09

Post autor: snah »

sed edytuje plik linia po linii.

Kod: Zaznacz cały

sed -n '/<div style="text-align:left; margin:10px">/,/

strona/'p plik.txt

Wyświetli wszystkie linie pliku zaczynając od linii zawierającej pierwsze wyrażenie regularne, do linii zawierającej wyrażenie drugie.

Tak na szybko to można za pomocą string replace usunąć 'śmieci'

Kod: Zaznacz cały

sed -n '/<div style="text-align:left; margin:10px">/,/

strona/'p plik.txt | sed -e 's/.*<div style="text-align:left; margin:10px">//' -e 's/

strona.*//'
cleanix
Posty: 2
Rejestracja: 02 marca 2009, 22:35
Lokalizacja: PL

Post autor: cleanix »

snah, dziękuję ci bardzo za profesjonalne podejście do sprawy :) .

Rozjaśniłeś mi trochę.

Pozdrawiam
ODPOWIEDZ