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)"
   rm_recursivo  $(($1+1)) $2
}
rm_recursivo 1 $(wc -l /home/PEDRO/informacion.txt|awk {'print $1'})


pero fíjate que es mucho más complejo e ineficiente. Así que lo dejo solo
como curiosidad.
Saludos.


-- 
Marc

Responder a