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?
Hozzászólások
Hasonló probléma megoldása:
Az ingatlan.com egyik mezőjének az értékét tárolom el.
Ez legyen a mintád:
"(?<=>)[^</]+"
tl;dr
Egy-két mondatban leírnátok, hogy lehet ellopni egy bitcoin-t?
Ohh. Köszi. Próbálkoztam a / jel behelyezésével, csak nem ide... mivel mindig szintaktikai hibát dobott, s abbahagytam.
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
https://iotguru.cloud
Nem ismertem. Köszi.
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.
+1 Itt az örökbecsű válasz, hogy miért nem.
Á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.