Wyodrębniam adresy URL z witryny internetowej za pomocą cURL, jak poniżej.
curl www.somesite.com | grep "<a href=.*title=" > new.txt
Mój nowy plik.txt wygląda jak poniżej.
<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">
Jednak muszę wyodrębnić tylko poniższe informacje.
<a href="http://website1.com" title="something"> <a href="http://website2.com" information="something" title="something">
Próbuję zignorować <a href
, które mają informacje w nich i których tytuł kończy się na NOTNEEDED .
Jak mogę zmodyfikować instrukcję grep?
Komentarze
Odpowiedź
Nie rozumiem w pełni twojego przykładu + opisu, ale brzmi to tak, jak ty chcę to:
$ 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">
Na przykład:
$ curl www.example.com | grep -v "<a href=.*title=" | grep -v NOTNEEDED > new.txt
Komentarze
- Mam klasę w sekcji < a href. Zasadniczo nie chcę tego w moich wynikach.
Odpowiedź
Strona podręcznika grep mówi:
-v, --invert-match Invert the sense of matching, to select non-matching lines. (-v is specified by POSIX .)
Do wielu inwersji możesz użyć wyrażeń regularnych:
grep -v "red\|green\|blue"
lub
grep -v red | grep -v green | grep -v blue
curl www.somesite.com | grep "<a href=.*title=" | grep -v NOTNEEDED > new.txt
?