[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: SCRIPT LEYENDO LINEAS RECURSIVAMENTE



Hola Marc,

2010/11/2 Marc Aymerich <glicerinu@gmail.com>:
>
>
> 2010/11/2 rantis cares <rantiscares@gmail.com>
>>
>> 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!


Reply to: