2010/11/2 Javier Barroso <[email protected]>

> Hola Marc,
>
> 2010/11/2 Marc Aymerich <[email protected]>:
> >
> >
> > 2010/11/2 rantis cares <[email protected]>
> >>
> >> Listeros:
> >>
> >> Estoy haciendo un pequeño script para obtener ciertos detalles de un
> >> archivo y realizar una accion. Ustedes disculparan que no hable con
> terminos
> >> tecnicos, pues no los sé, porque siempre he realizado scripts pero nunca
> me
> >> he enfocado en los terminos.
> >>
> >> Ya tengo casi todo el script que necesito para generar un informe.
> >>
> >> La palabra TODOS (me parece que es una variable, si no pueden
> corregirme)
> >> yo quiero que lea todas las lineas, pero cada vez que lea una linea que
> >> ejecute la accion borrar y que se ejecute la accion de borrar. Quiero
> que se
> >> detenga hasta que encuentre la ultima linea.
> >
> > Me acabo de dar cuenta que en el asunto pides un algoritmo recursivo. En
> > este caso lo más sencillo es solucionarlo con uno iterativo (con un while
> o
> > for como los que te hemos dado). Ya que estamos tratando con una lista de
> > elementos (/home/PEDRO/informacion.txt) y para este tipo de datos es
> > mas cómodo iterar que hacer llamadas recursivas. Pero también es posible
> una
> > solución recursiva, seria algo asi como:
> > #!/bin/bash
> > function rm_recursivo {
> >    if [ $1 == $2 ]; then exit 0; fi
> >    rm -fr "$(head -n $1 /home/PEDRO/informacion.txt | tail -n 1)"
> No creo que esté pidiendo algo tan complicado (aunque no lo tengo
> claro), de todas formas esta última instrucción (o mejor dicho, su
> última parte) se puede resumir con sed:
> sed -n -e ${1}p /home/PEDRO/informacion.txt
>
> Creo recordar haber usado hace mucho tiempo el tema del head -n ... |
> tail -n 1, pero creo que con sed es más eficiente y quizás más claro
>

gracias Javier, nunca consigo acordarme de como extraer una linea concreta
con sed, a ver si esta vez es la ultima!!
saludos!

-- 
Marc

Responder a