URL-eket vonok ki egy webhelyről a cURL használatával, az alábbiak szerint.
Az új.txt fájlom az alábbi.
<a href="http://website1.com" title="something"> <a href="http://website1.com" information="something" title="something"> <a href="http://website2.com" title="some_other_thing"> <a href="http://website2.com" information="something" title="something"> <a href="http://websitenotneeded.com" title="something NOTNEEDED">
Azonban csak az alábbi információkat kell kibontanom.
<a href="http://website1.com" title="something"> <a href="http://website2.com" information="something" title="something">
Igyekszem figyelmen kívül hagyni a <a href
-t, amelyek információ bennük, és amelynek címe NEM TARTALMAZZA .
Hogyan módosíthatom a grep utasításomat?
Megjegyzések
Válasz
Nem követem teljes mértékben a példádat + a leírást, de úgy hangzik, mint amit ez a következő:
$ grep -v "<a href=.*title=.*NOTNEEDED" sample.txt <a href="http://website1.com" title="something"> <a href="http://website1.com" information="something" title="something"> <a href="http://website2.com" title="some_other_thing"> <a href="http://website2.com" information="something" title="something">
Tehát a példádhoz:
$ curl www.example.com | grep -v "<a href=.*title=" | grep -v NOTNEEDED > new.txt
Megjegyzések
- Van egy osztályom a < a href szakaszban. Alapvetően nem ezt akarom a kimenetemben.
Válasz
A grep kézikönyv a következőket mondja:
-v, --invert-match Invert the sense of matching, to select non-matching lines. (-v is specified by POSIX .)
Több inverzióhoz használhat reguláris kifejezéseket:
grep -v "red\|green\|blue"
vagy
grep -v red | grep -v green | grep -v blue
curl www.somesite.com | grep "<a href=.*title=" | grep -v NOTNEEDED > new.txt
?