El uso de curl, grep, sed y para extraer los datos de HTML

Estoy tratando de aprender algunos comandos de terminal, y vi esta uno que agarra los enlaces de la última Google doodle y lo copia en el portapapeles:

$ curl http://www.google.com/doodles#oodles/archive |
grep -A5 'latest-doodle on' | grep 'img src' |
sed s/.*'<img src="\/\/'/''/ | sed s/'" alt=".*'/''/ | pbcopy

He tratado de hacer algo similar – este comando se debe copiar la palabra del día en el portapapeles:

curl "http://www.merriam-webster.com/word-of-the-day/" |
grep -A5 'main_entry_word' | sed s/.*'<strong class="main_entry_word">'/''/ |
sed s/'</\strong>.*'/''/ | pbcopy

Tengo un error que dice:

sed: 1: "s/</\strong>.*//": bad flag in substitute command: '/'

No estoy realmente seguro de lo que estoy haciendo y he probado algunos tutoriales en otros sitios web, pero no puedo averiguar. Yo creo que el principal problema es que no entiendo lo que la mayoría de la ‘sed’ comando.

Alguien me puede ayudar por favor?

  • Por supuesto, usted tiene ese mensaje. Se utilizan cuatro ‘/’ caracteres. Recomiendo romper todo abajo en pequeños trozos y experimentar con cosas poco a poco. Por CIERTO, supongo que si se invierte el orden de la » / » y » \ ‘ usted conseguirá lo que usted desea.
InformationsquelleAutor user2397282 | 2014-06-01

2 Kommentare

  1. 1
    sed s/'<\/strong>.*'/''/

    o

    sed [email protected]'</strong>.*'@''@
    • Esto se ha corregido el error – devuelve la palabra del día! Sin embargo, he tenido que cambiar de A5-a -A0 y ahora sólo devuelve la palabra! Gracias!
    • En realidad, funciona igual de bien sin el ‘A0’ bits
  2. 2

    Si entiendo su requisito de derecho, desea extraer el texto entre <strong...class="..."> y </strong>, me gustaría utilizar solo grep para guardar su grep|grep|sed|sed...:

    también uso -s opción de curvatura:

    kent$  curl -s "link"|grep -Po '<strong\s+class="main_entry_word">\K.*?(?=</strong>)'

    de salida:

    palmy

Kommentieren Sie den Artikel

Bitte geben Sie Ihren Kommentar ein!
Bitte geben Sie hier Ihren Namen ein

Pruebas en línea