2012-05-22 14 views
12

Tengo dos archivos cuyo orden de líneas es irrelevante, y quiero comparar su contenido.Comparar dos archivos que ignoran el orden

Revisé la documentación de diff pero no pude encontrar nada como --ignore-order.

¿Algún consejo?

PD: $ no funcionó en mi computadora, tal vez me malinterpreten.

+0

¿Puedes mostrar un breve fragmento de los dos archivos y un ejemplo de lo que quieres? – matchew

+1

'$' indica el símbolo del sistema, simplemente escriba el resto de la línea después de él. – Kevin

Respuesta

35

Ordenar los archivos primeros:

$ sort file1 > file1.sorted 
$ sort file2 | diff - file1.sorted 

Además, aunque personalmente desalentar este tipo de cosas, si está utilizando bash y esta característica está habilitada en el sistema puede evitar el archivo temporal mediante un proceso sustitución:

$ diff <(sort file1) <(sort file2) 
+0

segunda solución es elegante af – CTodea

2

Quizás esté viendo el problema por el lado equivocado. ¿Tal vez le gustaría ordenar ambos archivos y luego compararlos?

De lo contrario,

diff file1 file2 

haría exactamente lo que está pidiendo.