Adott egy html fájl, melyből kiszeretném szűrni a vastagon szedett verziószámot.
<td><a href="/pub/valami/kiadás/99.0b5/">2.0b3/</a></td>
Az alábbi paranccsal majdnem sikerül, de ott marad a verziószám utáni / jel.
curl -s "webcím" | grep -oP "(?<=>)[^<]+"
Ezt lehetne még a regex-szel szűrni, vagy sed kell utána?
- 198 megtekintés
Hozzászólások
Hasonló probléma megoldása:
#!/bin/bash
NUM=`curl -sA "Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)" https://ingatlan.com/szukites/elado+lakas+budapest | grep -Po '<span class="results__number__count">([0-9\s]{2,6})\</span' | grep -Po '([0-9\s]{2,6})'`
echo `date +"%Y-%m-%d %T, "` $NUM >> ~/ingatlan_stat.csv
Az ingatlan.com egyik mezőjének az értékét tárolom el.
- A hozzászóláshoz be kell jelentkezni
Ez legyen a mintád:
"(?<=>)[^</]+"
- A hozzászóláshoz be kell jelentkezni
Ohh. Köszi. Próbálkoztam a / jel behelyezésével, csak nem ide... mivel mindig szintaktikai hibát dobott, s abbahagytam.
- A hozzászóláshoz be kell jelentkezni
A grep kurvára nem erre való, ha betördelik véletlenül másképp a HTML-t, kerül bele szóköz, tab, egyéb tag, akkor szopol, szóval DOM parser, például pup: https://github.com/ericchiang/pup
- A hozzászóláshoz be kell jelentkezni
Nem ismertem. Köszi.
- A hozzászóláshoz be kell jelentkezni
Ez egy generált oldalnak tűnik, de valóban lehet ilyen problémája - én mondjuk első körben a sortöréseket kipucolom ilyen esetben, utána a html-tagek elején/végén sortörés, onnantól meg a megadott mintára illeszkedő sor utáni sort kell csak kiszedni. Ha a whitespace-ek nem kellenek a kimenetben, akkor első körben azokat is kihajítom az inputból.
- A hozzászóláshoz be kell jelentkezni
+1 Itt az örökbecsű válasz, hogy miért nem.
- A hozzászóláshoz be kell jelentkezni
Általános esetben nem, speciális esetben meg teljesen jó is lehet - célhoz az eszközt, szoktam volt mondani. Jelen esetben a teljes dom értelmezése, bejárása szinte biztos, hogy fölösleges - az adott tartalomból némi előfeldolgozás után, de akár anélkül is teljesen jól kinyerhető az az információ, amire a kérdezőnek szüksége van. Ha az a feladat, hogy a céllövöldében el kéne trafálni a jól beáztatott hurkapálcát a kacsingatós pénztárca megnyeréséhez, akkor fölösleges csillagrombolót ajánlani, mondván, hogy a csillagrombolón van olyan katona, akinek a kézifegyverével ez a feladat megoldható - elég egy jól belőtt légpuskát előszedni.
- A hozzászóláshoz be kell jelentkezni