Ir al contenido principal

Entradas

Mostrando las entradas etiquetadas como find

Receta Python: Buscar una cadena de un archivo en otro archivo

Se tienen dos archivos (archivo1 y archivo2); lo que se pretende es leer el archivo1 linea a linea y buscar cada línea en el archivo2, al final se crea un archivo denominado diferencias donde aparecen las líneas que se encuentran en archivo1 y que NO están en archivo2. #!/usr/bin/env python import os try:  # Solicito el nombre de los archivos a analizar  farchivo1 = raw_input('Primer archivo: ')  farchivo2 = raw_input('Segundo archivo: ')  # Abro el archivo 1  archivo1 = open(farchivo1,'r')  c = archivo1.readlines()  for i in c:   archivo2 = open(farchivo2,'r')   # Leo completamente el archivo2   full = archivo2.read()   if full.find(str(i))>=0:    print i,' OK\n'   else:    # Abro un archivo para edición    fdif = open('diferencias.txt','a')    noe = i    fdif.writelines(noe)   fdif.close()   archivo2.close()...

Buscar y borrar archivos al mismo tiempo

En mi trabajo me asignaron como tarea la creación de un cron para el respaldo de algunos archivos y el borrado de otros. La tarea del cron no presentaba ninguna complicación, lo interesante de la tarea surge cuando debo el cron debe localizar unos archivos (logs) que se genera un aplicativo instalado en el servidor y que deben ser borrados para liberar espacio conservando únicamente los últimos 3 días. Esta tarea se empezó a llevar de forma manual hasta que me dí a la tarea de buscar en internet alguna herramienta que de una u otra forma me permitiera automatizar dicho proceso y no tuve que buscar mucho, encontre un comando que en conjunto con otras instrucciones me permitió hacer lo que andaba buscando. El comando no es otro más que el find y esto fue lo que hice. La instrucción implementada fue esta: [abc@home]$ find /opt/sfs/logs -type f ( ! -name '*tar' -a ! -name 'bk_*' ) -atime +3 -exec rm {} \; Lo que hace dicha instrucción es busque y borre de la ruta /opt/sfs...