Foros del Web » Administración de Sistemas » Unix / Linux »

programacion de la shell de linux para comparar ficheros

Estas en el tema de programacion de la shell de linux para comparar ficheros en el foro de Unix / Linux en Foros del Web. Muy buenas tengo un problema con una practica que no sabemos como plantearla y tampoco hacerla muy bien. La practica seria: un script con el ...
  #1 (permalink)  
Antiguo 02/05/2012, 10:22
 
Fecha de Ingreso: mayo-2012
Mensajes: 60
Antigüedad: 11 años, 11 meses
Puntos: 0
Pregunta programacion de la shell de linux para comparar ficheros

Muy buenas tengo un problema con una practica que no sabemos como plantearla y tampoco hacerla muy bien.
La practica seria:
un script con el que se determine el porcentaje de coincidencias entre una serie de ficheros localizados bajo una serie de directorios.
Todos los directorios con los ficheros a analizar se encontrarán bajo un único
directorio. Directorio y script tendrán el mismo nombre.
los nombres deberan ser localizados. pero ambos nombres serán iguales

gracias de antemano.
  #2 (permalink)  
Antiguo 07/05/2012, 07:58
AlvaroG
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: programacion de la shell de linux para comparar ficheros

Pues para obtener diferencias entre archivos podés usar el programa diff, busca su página del manual. En cuanto a 'porcentaje', no recuerdo si diff tiene una opción de estadísticas, en caso de que la tenga, podrás usarla. En caso de que no, tienes que definir correctamente qué es el "porcentaje de coincidencias".
  #3 (permalink)  
Antiguo 07/05/2012, 09:38
 
Fecha de Ingreso: mayo-2012
Mensajes: 60
Antigüedad: 11 años, 11 meses
Puntos: 0
Respuesta: programacion de la shell de linux para comparar ficheros

sería el nº de líneas que coinciden en ambos
  #4 (permalink)  
Antiguo 07/05/2012, 10:50
AlvaroG
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: programacion de la shell de linux para comparar ficheros

revisé la página de manual de diff y no parece tener una opción para mostrar el número de líneas que difieren. Además, si es un ejercicio, quizás debas pensar cómo hacerlo sin utilizar diff. ¿Qué herramientas se supone que debes usar?
  #5 (permalink)  
Antiguo 07/05/2012, 11:30
 
Fecha de Ingreso: mayo-2012
Mensajes: 60
Antigüedad: 11 años, 11 meses
Puntos: 0
Respuesta: programacion de la shell de linux para comparar ficheros

cualquiera que esté disponible en linux, en el otro mensaje dije como comparaba, el del grep, lo estoy haciendo así ahora, pero tengo problemas con el mismo pues necesito que me coja lo que haya después del nº, mira el otro es este:
http://www.forosdelweb.com/f41/busqueda-patrones-con-grep-quedarse-con-resto-991528/
tal vez tengas alguna otra idea
gracias!
  #6 (permalink)  
Antiguo 07/05/2012, 13:15
AlvaroG
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: programacion de la shell de linux para comparar ficheros

Pues yo lo haría de una forma más simple que con grep. Esto funciona si los archivos no contienen líneas duplicadas, y lo pongo solamente como ejemplo de una forma que no compara línea por línea

Código BASH:
Ver original
  1. lineas_del_archivo= `wc -l <archivo`
  2. lineas_distintas=`sort -u archivo1 archivo2 | wc -l`
  3.  
  4. if [ $lineas_del_archivo -ne $lineas_distintas ]; then
  5.     # la cantidad de líneas es diferente, los archivos son distintos
  6.     porcentaje_diferencia = $(( $lineas_distintas / $lineas_del_archivo * 100 ))
  7. else
  8.     porcentaje_diferencia = 0
  9. fi

La idea es que si los archivos son idénticos, el número de líneas luego de "sort -u" es igual al número de líneas del archivo original. Como mencioné antes, es solamente un ejemplo ya que no funciona si hay líneas duplicadas en los archivos.


Saludos.
  #7 (permalink)  
Antiguo 07/05/2012, 14:36
 
Fecha de Ingreso: mayo-2012
Mensajes: 60
Antigüedad: 11 años, 11 meses
Puntos: 0
Respuesta: programacion de la shell de linux para comparar ficheros

gracias, pero el problema es que si que puede haber lineas duplicadas y yo ya me pierdo por ahi jejeje
  #8 (permalink)  
Antiguo 11/05/2012, 10:00
 
Fecha de Ingreso: mayo-2012
Mensajes: 2
Antigüedad: 11 años, 11 meses
Puntos: 0
Respuesta: programacion de la shell de linux para comparar ficheros

jajaja me cago en el puto lolo, supongo que eres de la ubu de itig, ese pavo no tiene vergüenza, nos pone unas prácticas mamadas de la hostia y luego el proyecto es más jodido que el copón, no explica nada en prácticas, no sabe dar clase, a veces no se entiende lo que dice, si los alumnos no hacen los ejercicios en la pizarra no los hace él... MENUDO ELEMENTO!!! Un saludo y que te sea leve, yo estoy igual que tú o incluso peor!
  #9 (permalink)  
Antiguo 13/05/2012, 09:47
 
Fecha de Ingreso: mayo-2012
Mensajes: 60
Antigüedad: 11 años, 11 meses
Puntos: 0
Respuesta: programacion de la shell de linux para comparar ficheros

exactamente tio jajaja
a ti como te ha ido??
  #10 (permalink)  
Antiguo 14/05/2012, 05:34
 
Fecha de Ingreso: mayo-2012
Mensajes: 2
Antigüedad: 11 años, 11 meses
Puntos: 0
Respuesta: programacion de la shell de linux para comparar ficheros

fuahhhh, pues mal tío, al final no lo he entregado, he estado muy liado con la web de interacción máquina, pero se ve que el día 20 se puede subir otra vez lo de sisop, el problema es que no sé por dónde cogerlo xDDD. Y tú al final lo hiciste?

Etiquetas: ficheros, linux, operativos, programacion, shell, sistemas, ubuntu, unix
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 01:01.