2010-09-30 21 views
8

Tengo dos archivos de un archivo de subconjunto de otra y quiero obtener un archivo que tiene contenidos que no son comunes a both.for ejemplodiferencia entre el contenido de dos archivos

Fichero1

apple 
mango 
banana 
orange 
jackfruit 
cherry 
grapes 
eggplant 
okra 
cabbage 

archivo2

apple 
banana 
cherry 
eggplant 
cabbage 

El archivo resultante, diferencia de dos archivos anteriores

mango 
orange 
jackfruit 
grapes 
okra 

Se agradecen todas las ideas sobre esto.

Respuesta

2

uso awk, sin clasificación necesaria (reducir los gastos generales)

$ awk 'FNR==NR{f[$1];next}(!($1 in f)) ' file2 file 
mango 
orange 
jackfruit 
grapes 
okra 
11

Puede ordenar los archivos a continuación, utilizar comm:

$ comm -23 <(sort file1.txt) <(sort file2.txt) 
grapes 
jackfruit 
mango 
okra 
orange 

También puede ser que desee utilizar comm -3 en lugar de comm -23:

 
    -1    suppress lines unique to FILE1 
    -2    suppress lines unique to FILE2 
    -3    suppress lines that appear in both files 
+0

+1 Awesome. He resuelto esto desde cero varias veces en los últimos años y me encantó esta solución integrada porque no necesitaré llevar un script ahora. Se puede simplificar aún más si los archivos se clasifican previamente para eliminar la sintaxis <(...) para evitar confundir a los novatos – Vlueboy

+0

Esta debería ser la respuesta aceptada. – jaustin

3

1 Solo uno i nstance, ya sea en

  • cat File1 File2 | ordenar | uniq -u

2 Sólo en el primer archivo

  • cat archivo1 archivo2 archivo2 | ordenar | uniq -u

3 Sólo en segundo archivo

  • cat archivo1 archivo1 archivo2 | ordenar | uniq -u
+0

¡Esto es muy inteligente! – econ

0

1. Archivos raro que ambos archivos

diff --changed-group-format="%<" --unchanged-group-format="%>" file1 file2 

2. archivo único primer archivo a

diff --changed-group-format="%<" --unchanged-group-format="" file1 file2 

3. Archivo única de segundo archivo

diff --changed-group-format="" --unchanged-group-format="%>" file1 file2 

Espero que te funcione

Cuestiones relacionadas