Haen URL-osoitteita verkkosivustolta käyttämällä alla olevaa URL-osoitetta.
curl www.somesite.com | grep "<a href=.*title=" > new.txt
Uusi.txt-tiedostoni on kuten alla.
<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">
Minun on kuitenkin purettava vain alla olevat tiedot.
<a href="http://website1.com" title="something"> <a href="http://website2.com" information="something" title="something">
Yritän jättää huomiotta <a href
, joissa on tiedot heissä ja joiden otsikko päättyy EI TARVITA .
Kuinka voin muokata grep-käskyni?
Kommentit
Vastaa
En seuraa täysin esimerkkiäsi + kuvaustasi, mutta kuulostaa siltä kuin sinä halua tämä:
$ 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">
Joten esimerkillesi:
$ curl www.example.com | grep -v "<a href=.*title=" | grep -v NOTNEEDED > new.txt
Kommentit
- Minulla on luokka < a href -osiossa. Pohjimmiltaan en halua sitä lähdössäni.
Vastaus
grep -sivulla sanotaan:
-v, --invert-match Invert the sense of matching, to select non-matching lines. (-v is specified by POSIX .)
Voit käyttää säännöllisiä lausekkeita useille inversioille:
grep -v "red\|green\|blue"
tai
grep -v red | grep -v green | grep -v blue
curl www.somesite.com | grep "<a href=.*title=" | grep -v NOTNEEDED > new.txt
?