Estoy extrayendo URL de un sitio web usando cURL como se muestra a continuación.
curl www.somesite.com | grep "<a href=.*title=" > new.txt
Mi archivo new.txt es el siguiente.
<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">
Sin embargo, solo necesito extraer la siguiente información.
<a href="http://website1.com" title="something"> <a href="http://website2.com" information="something" title="something">
Estoy tratando de ignorar las <a href
que tienen información en ellos y cuyo título termina con NOTNEEDED .
¿Cómo puedo modificar mi declaración grep?
Comentarios
Responder
No estoy siguiendo completamente su ejemplo + la descripción, pero parece que Lo que quiero es esto:
$ 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">
Entonces, para su ejemplo:
$ curl www.example.com | grep -v "<a href=.*title=" | grep -v NOTNEEDED > new.txt
Comentarios
- Tengo una clase en la < una sección href. Básicamente, no quiero eso en mi salida.
Respuesta
La página de manual de grep dice:
-v, --invert-match Invert the sense of matching, to select non-matching lines. (-v is specified by POSIX .)
Puede usar expresiones regulares para múltiples inversiones:
grep -v "red\|green\|blue"
o
grep -v red | grep -v green | grep -v blue
curl www.somesite.com | grep "<a href=.*title=" | grep -v NOTNEEDED > new.txt
?