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 Saludos! -- To UNSUBSCRIBE, email to [email protected] with a subject of "unsubscribe". Trouble? Contact [email protected] Archive: http://lists.debian.org/[email protected]

