grep perl szűrés

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

Szerkesztve: 2022. 10. 25., k – 09:54

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.

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.

Á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.