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

Re: Duda sobre el comportamiento de "cat"



El Mon, 13 Jul 2015 14:36:05 -0500, Carlos Zuniga escribió:

> 2015-07-12 11:48 GMT-05:00 Camaleón <noelamac@gmail.com>:

(...)

>> find logs -maxdepth 1 -type f -name "example.com.*" -ctime -1 exec cat
>> "logs/example.com_$(date '+%Y%m')_access_log.txt" {} \; exec mv {}
>> logs/archive \;

(...)

> Acabo de probar y me funciona como se espera, ojo que cambié la línea
> por esto:
> 
>     find . -maxdepth 1 -type f -name 'example.com.*' -ctime -1 -exec
> cat {} >> "logs/log_$(date '+%Y%m').txt" \; -exec mv {} arch/ \;
> 
> Notesé que añadí {} antes de la redirección y lo eliminé del final.
> Inicialmente no me dí cuenta de este {} extra y se repitieron las
> entradas en el log mensual (parece que `cat foo >> bar foo` añade el
> contenido de foo en bar 2 veces). Tal ves es ese el problema? Puedes
> pegar el comando exacto que utilizas?

El comando exacto lo puse en el primer mensaje, lo he dejado transcrito 
más arriba. 

El problema no es la posición del cierre de la instrucción "-exec {}" 
sino el orden que devuelve el comando find con el resultado de los 
archivos que es indeterminado (vamos, que no sé qué lógica sigue) y yo 
necesitaba que fuera alfabético. Con un "sort" se soluciona, pero se 
pierde la gracia del "-exec" (hay que usar alguna estructura de bucle 
como decía Manolo) y con un simple "cat" se obtienen los archivos en el 
orden correcto.

Saludos,

-- 
Camaleón


Reply to: