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

