Extrahuji adresy URL z webu pomocí cURL, jak je uvedeno níže.
curl www.somesite.com | grep "<a href=.*title=" > new.txt
Můj soubor new.txt je uveden níže.
<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">
Musím však extrahovat pouze níže uvedené informace.
<a href="http://website1.com" title="something"> <a href="http://website2.com" information="something" title="something">
Snažím se ignorovat <a href
, které mají informace v nich a jejichž název končí na NOTNEEDED .
Jak mohu upravit své prohlášení grep?
Komentáře
Odpověď
Nesleduji úplně váš příklad + popis, ale zní to jako to, co vy chcete toto:
$ 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">
Takže pro váš příklad:
$ curl www.example.com | grep -v "<a href=.*title=" | grep -v NOTNEEDED > new.txt
Komentáře
- Mám třídu v sekci < href. V zásadě to ve svém výstupu nechci.
Odpověď
Manuální stránka grep říká:
-v, --invert-match Invert the sense of matching, to select non-matching lines. (-v is specified by POSIX .)
Regulární výrazy můžete použít pro více inverzí:
grep -v "red\|green\|blue"
nebo
grep -v red | grep -v green | grep -v blue
curl www.somesite.com | grep "<a href=.*title=" | grep -v NOTNEEDED > new.txt
?