Kezdőlap › Fórumok › Programozás › szókeresés szövegbõl
- This topic has 11 hozzászólás, 7 résztvevő, and was last updated 19 years, 1 months telt el by
ELaci.
-
SzerzőBejegyzés
-
2006-05-31-17:24 #2061701
Egyáltalán nem tudod körülhatárolni az email címet?
Tudsz esetleg egy részletet bemásolni?
2006-05-31-17:52 #2061702Erre talán használható a grep illetve az egrep:
Code:$ egrep „[a-zA-Z0-9]+@[a-zA-Z0-9]+.[a-zA-Z0-9]+” ./*A végén a „./*” a fájlnév, ehelyet add meg a saját fájlod nevét (különben az összes adott könyvtárban található fájlban keresni fog). Ha esetleg több fájlban, rekurzívan szeretnél keresni, akkor a „-r” opciót is meg kell adni.
2006-06-01-09:25 #2061703Az alapötlet jó, de apróbb gondok vannak vele:
1) a h938777@stud.u-szeged.hu -t nem fogja kidobni (a „túl sok” pont miatt)
2) aláhúzás-jel (meg még nemtom, mik) is lehetnek email-címben.
Szóval szerintem a minta:„[a-zA-Z0-9_.]+[a-zA-Z0-9_]@[a-zA-Z0-9]+[a-zA-Z0-9._]+[a-zA-Z0-9]”
Persze még a plusz egyéb karaktereket be kellene oda rakni, ahol aláhúzásjelek vannak. Lehet, hogy még ez se tökéletes, de több email-címet fog megtalálni.
2006-06-01-09:29 #2061704Köszi az ötletet, de az egrep is sorokra keres, szóval nem vagyok kint a vízbõl. Sajnos nem tudok példát mutatni, csak annyit, hogy egy beszkennelt, rossz minõségü omnipage-el szöveggé konvertált fájlról van szó. Az email címek már rendben vannak (tehát megfelelnek az alapformátumnak user@host , bár itt is lehetnek ugye pontok, kötõjelek, alulvonások. stb.).
Viszont a mail címek szpészell teljesen el vannak különítve a sor többi részétõl (elõtte is utána is változó számú szpészek vannak, szóval es sem jó határolónak.). Tehát az kéne, hogy valamivel az email szintaktikájú szavakat ki tudjam szûrni.köszi
2006-06-01-09:35 #2061705Tényleg, a kötõjel is! Hogy nem vettem észre (u-szeged).
Ha egy sorban több is van, akkor szerintem sed a lelke (mindennek):
a lényeg, hogy a nem e-mail-szerûségeket törölje. Valami ilyesmi lehet:sed „s/^( az_elõbb_írt_minta_kötõjellel_meg_mindennel)//g”
Utána szerintem a szóközöket (a zárójel után szóköz van!) újsorra kellene cserélni, és akkor már meg is van 1email/sor. Persze lesz egy fölös sorod az elején, de ennyi szépséghiba kell 🙂
2006-06-01-12:12 #2061706hát nekem a sed is komplett sorokat talál meg, pedig nekem csak az email kéne a sorból.
2006-06-01-15:41 #2061707Lehet még bonyolítani?
2006-06-01-15:59 #2061708ELaci wrote:Lehet még bonyolítani?2006-06-03-08:11 #2061709Perl? Java? Mi a fenének?
Rájöttem egy tök egyszerû megoldásra: mit is keresünk? Kukacokat. A címek mikkel vannak szeparálva? Szóközökkel. Tehát: keressünk kukacokat (mint a horgászok), erre találták ki a grep-et. Ezután cseréljünk minden szóközt újsorra, ez a sed. Ezután még egyszer grep-pel megnézzük, melyik sorokban vannak még giliszták:Code:grep „@” lista.txt | sed „s/ /n/g” | grep „@”Ha esetleg olyan email is van, hogy utána vesszõ van (pl. felsorolás), akkor még egy plusz szûrés a végére:
Code:sed „s/[,.]$//”Azért kíváncsi lennék a java-s megoldásra, hogy ilyen rövid-e 🙂
2006-06-05-15:40 #2061710Köszönöm ez a megoldás bevált!
-
SzerzőBejegyzés
- Be kell jelentkezni a hozzászóláshoz.
legutóbbi hsz