Jextraction des URL dun site Web en utilisant cURL comme ci-dessous.
curl www.somesite.com | grep "<a href=.*title=" > new.txt
Mon nouveau fichier.txt est comme ci-dessous.
<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">
Cependant, je nai besoin dextraire que les informations ci-dessous.
<a href="http://website1.com" title="something"> <a href="http://website2.com" information="something" title="something">
Jessaie dignorer les <a href
qui ont informations et dont le titre se termine par NOTNEEDED .
Comment puis-je modifier mon instruction grep?
Commentaires
Réponse
Je « ne suis pas entièrement votre exemple + la description mais cela ressemble à ce que vous voulez est ceci:
$ 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">
Donc pour votre exemple:
$ curl www.example.com | grep -v "<a href=.*title=" | grep -v NOTNEEDED > new.txt
Commentaires
- Jai une classe dans la < une section href. Fondamentalement, je ne veux pas de cela dans ma sortie.
Réponse
La page de manuel grep dit:
-v, --invert-match Invert the sense of matching, to select non-matching lines. (-v is specified by POSIX .)
Vous pouvez utiliser des expressions régulières pour plusieurs inversions:
grep -v "red\|green\|blue"
ou
grep -v red | grep -v green | grep -v blue
curl www.somesite.com | grep "<a href=.*title=" | grep -v NOTNEEDED > new.txt
?