a.txt:
1;john;125;3
1;tom;56;2
2;jack;10;5
b.txt:
1;john;125;3
1;tom;58;2
2;jack;10;5
Usar comunicación:
comm -13 a.txt b.txt
1;tom;58;2
Las opciones de la línea de comando para comm
son bastante sencillos:
-1 suprime la columna 1 (líneas exclusivas de FILE1)
-2 suprimir la columna 2 (líneas exclusivas de FILE2)
-3 suprimir la columna 3 (líneas que aparecen en ambos archivos)
Aquí hay una solución simple que creo que es mejor que diff
:
sort file1 file2 | uniq -u
sort file1 file2
concatena los dos archivos y los ordenauniq -u
imprime las líneas únicas (que no se repiten). Requiere que la entrada esté preordenada.
Usando especificadores de formato de grupo, puede suprimir la impresión de líneas sin cambios e imprimir solo líneas modificadas para cambiar
diff --changed-group-format="%>" --unchanged-group-format="" file1 file2
Suponiendo que desea conservar solo las líneas exclusivas del archivo 2, puede hacer:
comm -13 file1 file2
Tenga en cuenta que el comm
El comando espera que los dos archivos estén ordenados.