Ubuntu Linux
-
#1609
Kis segítség (nem teljesen tökéletes):
sed -n 's/\(.*\)<img\(.[^<>]*\)src="\(.[^<>"]*\)"\(.*\)/\3/gp'
Ez a parancs kiszedi a bemenetére érkező HTML-forrásból a képeket létrehozó <img> tag src attribútumának értékét (vagyis a kép elérhetőségét).
A reguláris kifejezés részekre szedve:
\(.*\)<img - Az <img> tag előtti bármilyen karakter (ez az első blokk).
\(.[^<>]*\) - Az <img> tag eleje, és az src attribútum közötti rész (ez a 2. blokk). Nem tartalmazhatja a < és a > karaktereket ([^<>]).
src="\(.[^<>"]*\)" - Az src attribútum és értéke (\(.[^<>"]*\) - ez a 3. blokk). Az érték nem tartalmazhatja a <,> és " karaktereket ([^<>"]).
\(.*\) - Az src attribútum utáni dolgok (ez a 4. blokk).
Nekünk a 3. blokkra van szükségünk, ezért ha találunk megfelelő mintára illeszkedő kifejezést, akkor kicseréljük a 3. blokkra (az egész elején levő s kapcsoló hajtja végre a cserét).
Próbáld ki:
wget -qO- http://kepfeltolto.hu/index.php?m=10 | sed -n 's/\(.*\)<img\(.[^<>]*\)src="\(.[^<>"]*\)"\(.*\)/\3/gp'
"Szerintem perl-be írd és nem kell hozzá reguláris kifejezést használnod, rengeteg parser modul van perlhez. "
Azok is reguláris kifejezést használnak. ;)