Strona 1 z 1

[solved] [bash] wycinanie fragmentu wiersza

: 29 lip 2009, 19:28
autor: alhaim
Witam
Mam następujący problem -- ściągnąłem stronę z internetu na której były linki do innych stron (dokładniej do obrazków) chciałbym z danego źródła strony wyodrębnić link do owych obrazków. Umiem już ograniczyć plik do linii w której jest interesujący mnie link, ale nie wiem co mam dalej zrobić.

Przykład:

Kod: Zaznacz cały

<td style="background-color:white; text-align:center; vertical-align:middle;"><a href="/w/index.php?title=Plik:POL_Z%C5%82ot%C3%B3w_COA_1.svg&filetimestamp=20090514133220" class="image" title="Herb"><img alt="Herb" src="http://upload.wikimedia.org/wikipedia/commons/thumb/5/59/POL_Z%C5%82ot%C3%B3w_COA_1.svg/100px-POL_Z%C5%82ot%C3%B3w_COA_1.svg.png" width="100" height="123" /></a></td>
Z tego chcę wziąć: http://upload.wikimedia.org/wikipedia/c ... _1.svg.png

Dzięki za pomoc

Odp: [bash] wycinanie fragmentu wiersza

: 29 lip 2009, 19:36
autor: kasjo
Jeżeli zawsze jest taka sama liczba cudzysłowów w linii to możesz wyciąć link za pomocą

Kod: Zaznacz cały

cut -f 12 -d \"

Kod: Zaznacz cały

echo <td style="background-color:white; text-align:center;....|cut -f 12 -d \"

Odp: [bash] wycinanie fragmentu wiersza

: 30 lip 2009, 07:42
autor: alhaim
odpada -- nie mogę założyć takiej samej ilości cudzysłowów

Odp: [bash] wycinanie fragmentu wiersza

: 30 lip 2009, 10:43
autor: thalcave

Kod: Zaznacz cały

cat plik | sed s/" "/"\n"/g | grep ^src= | sed -r s/'src="(.*)"'/'\1'/g
Na podanej linii zadziałało. Założyłem, że adres, który chcesz wyciągnąć jest w "polu" zaczynającym się od src.

Odp: [bash] wycinanie fragmentu wiersza

: 30 lip 2009, 20:42
autor: kasjo

Kod: Zaznacz cały

cat plik |awk 'BEGIN {FS="src"} ; {print $2}'|cut -f 2 -d \"

Odp: [bash] wycinanie fragmentu wiersza

: 31 lip 2009, 12:32
autor: alhaim
thalcave pisze:

Kod: Zaznacz cały

cat plik | sed s/" "/"\n"/g | grep ^src= | sed -r s/'src="(.*)"'/'\1'/g
Na podanej linii zadziałało. Założyłem, że adres, który chcesz wyciągnąć jest w "polu" zaczynającym się od src.
Dzięki! Takie założenie chyba mogę poczynić :)

Odp: [solved] [bash] wycinanie fragmentu wiersza

: 03 sie 2009, 21:17
autor: leon1313
Polecam też zastępczo PERL-a :

Kod: Zaznacz cały

cat plik | perl -lane '/.*src=\"([^\"]+)\".*/; print $1'