Saludos, como veo que andan con eso de Bash igual quiero pedir algo de
ayuda con script que uso para ver los marcadores de la NBA.
El script empezo como un oneliner, un simple dump de lynx con un grep
lynx -dump http://..... |grep -3 $1|tail -5
(El tail lo uso por que me interesa la ultima incidencia en vez de la
primera ya que el sitio primero lista todos los equipos y luego pone los
marcadores.)
Despues lo quize aumentarlo para que si no le doy un argumento me diera todos los resultados.
Asi que hice una condicional
#!/bin/bash
if [ -z "$1" ]
then
lynx -dump http://....|sed "195,297!d"
else
lynx -dump http://....|grep -3 $1|tail -5
fi
El -z $1 me dice que si es vacio el desplegue completo, como el
sitio es muy largo, use sed para unicamente extraer un rango de lineas
(olviarme de headers footers y menus).
AHORA lo que quiero hacer es algo mas intresante.
Ya que los resultados habeces son demasiados y escapan la pantalla, y
no siempre se quien juega, quiero hacer una funcion que me permita
asignar valores numericos para poder ver los marcadores de manera
individual. Ejemplo:
$miscript 1
1 2 3 4 Total
[170]San Antonio 12 12 6:08
[171]Atlanta 11 11 1st
TV: FSSW, SPSO, C+D
[172]Box Score Live: [173]GameChannel
$miscript 2
1 2 3 4 Total
[174]Sacramento 14 14 5:49
[175]Charlotte 9 9 1st
TV: CSCA, SPSO
[176]Box Score Live: [177]GameChannel
etc...
Para esto lo que me gustaria es que dependiendo el
valor de argument ($1) sea el rango que sed agarre. Asi que si por
ejemplo $1 = 1 sed "195,205!d", si $1 = 2 sed "206,216!d" y asi... como
podran ver va de 10 en 10 lineas de aumento.
Puedo poner variables y hacer un contador similar a sed
"$inicio,$final!d" inicio=inicio+10; final=final+10... sin embargo los
contadores son secuenciales y me gustaria algo mas automagico que sea
operado por los valores de $1.
Actualmente mi script lo movere de un if a un case y que le da mas
fluides a las opciones, tambien quiero meterle funciones para que no
este todo mezclado.
ejemplo:
#!/bin/bash
url=http://...;
start=195;
case "$1" in
[0-9]*) lynx -dump $url|sed "$start,$start+6!d"
;;
[A-Z]*) lynx -dump $url|grep -3 $1|tail -5
;;
*) lynx -dump $url|sed "195,319!d"
;;
esac
--
Alexandro Colorado
Apache OpenOffice Contributor
http://es.openoffice.org