2009-07-02 15 views
56

Así que la utilidad Diff funciona igual que yo quiero para 2 archivos, pero tengo un proyecto que requiere comparaciones con más de 2 archivos a la vez, tal vez hasta 10 a la vez. Esto requiere tener todos esos archivos uno al lado del otro también. Mi investigación realmente no ha encontrado nada, vimdiff parece ser el mejor hasta ahora con la capacidad de comparar 4 a la vez.La utilidad DIFF funciona para 2 archivos. ¿Cómo comparar más de 2 archivos a la vez?

Mi pregunta: ¿Hay alguna utilidad para comparar más de 2 archivos a la vez, o una forma de hackear diff/vimdiff para que pueda hacer comparaciones múltiples? Los archivos que compararé son relativamente cortos, por lo que no deberían ser demasiado lentos.

¡Gracias de antemano!

Respuesta

88

Mostrar 10 archivos uno al lado del otro y resaltar las diferencias se puede hacer fácilmente con Diffuse. Sólo tiene que especificar todos los archivos en la línea de comando como este:

difusa 1.txt 2.txt 3.txt 4.txt 5.txt 6.txt 7.txt 8.txt 9.txt 10.txt

+1

Wow esto es increíble! Gracias por la respuesta incluso tarde, aún necesitaba la ayuda. –

+0

¿Cómo se llama este tipo de comparación? – leeand00

+3

Fantástica herramienta; solo me ayudó a resolver un problema molesto.Sé que es una respuesta anterior, ¡pero gracias! – SeanKilleen

2

Pedido "que no tiene comparación": http://www.scootersoftware.com/

Se le permite comparar directorios enteros de archivos, y parece que se ejecuta en Linux también.

+1

diff -r también compara directorios enteros de archivos, pero solo compara los archivos de un driectory con los archivos del otro directorio – reinierpost

+1

Beyond Compare es una magnífica herramienta, y la utilizo todo el tiempo para resolver conflictos de combinación. Sin embargo, no es la herramienta adecuada para este trabajo, ya que solo puede comparar dos archivos entre sí o contra un antecesor común. – Superole

17

Vim ya se puede hacer esto:

vim -d file1 file2 file3 

Pero normalmente está limitado a 4 archivos. Sin embargo, puedes cambiar eso modificando una sola línea en la fuente de Vim. La constante DB_COUNT define la cantidad máxima de diff archivos ed, y está definida hacia la parte superior de diff.c en las versiones 6.xy anteriores, o alrededor de dos tercios del camino hacia abajo structs.h en las versiones 7.0 y posteriores.

+0

vimdiff o vim -d solo pueden hacer 4 archivos al mismo tiempo en mi computadora. Alguien sabe cómo evitar esto? –

+0

No noté la mención de eso en la pregunta. Actualizado para incluir instrucciones sobre cómo cambiar el límite de Vim. –

+0

Oye, ¿sabes cómo llegar a structs.h o diff.c? No puedo encontrar el código fuente vim en Win o Linux. –

2

si la ejecución de varios archivos diff está basada en un archivo, probablemente podría intentar escribir un script que tenga un bucle for para ejecutar en cada directorio y ejecutar el diff. Aunque no estaría al lado del otro, al menos podrías compararlos rápidamente. Espero que haya ayudado.

+0

Sí, pero si estuviera comparando, por ejemplo, 3 archivos, me gustaría que difieran todos de los otros 2 archivos, ya que diff esa reorganización para ver dónde coinciden. –

+0

Encontré este comando que podría ayudar con su script, se llama diff3 y supuestamente es una utilidad para comparar tres archivos. http://linux.about.com/library/cmd/blcmdl1_diff3.htm la versión de Windows se puede encontrar aquí http://gnuwin32.sourceforge.net/packages/diffutils.htm –

Cuestiones relacionadas