Jag extraherar webbadresser från en webbplats med hjälp av CURL enligt nedan.
curl www.somesite.com | grep "<a href=.*title=" > new.txt
Min nya.txt-fil är som nedan.
<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">
Jag behöver emellertid endast extrahera informationen nedan.
<a href="http://website1.com" title="something"> <a href="http://website2.com" information="something" title="something">
Jag försöker ignorera <a href
som har information i dem och vars titel slutar med INTE NOTERAD .
Hur kan jag ändra mitt grep-uttalande?
Kommentarer
Svar
Jag följer inte ditt exempel + beskrivningen men det låter som du vill ha det här:
$ 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">
Så för ditt exempel:
$ curl www.example.com | grep -v "<a href=.*title=" | grep -v NOTNEEDED > new.txt
Kommentarer
- Jag har en klass i < en href-sektion. I grund och botten vill jag inte ha det i min produktion.
Svar
grep mansidan säger:
-v, --invert-match Invert the sense of matching, to select non-matching lines. (-v is specified by POSIX .)
Du kan använda reguljära uttryck för flera inversioner:
grep -v "red\|green\|blue"
eller
grep -v red | grep -v green | grep -v blue
curl www.somesite.com | grep "<a href=.*title=" | grep -v NOTNEEDED > new.txt
?