Como comparar duas listas de arquivos (vagas) e imprimir as duplicatas?

2

Eu tenho duas listas de arquivos. backup.txt e backup2.txt Algumas das entradas não são exatas, por isso, é difícil encontrar as duplicatas com diff ou uniq .

Exemplo:

:::backup.txt:::
auser_backup
auser_backup2
buser_backup
cuser_backup

:::backup2.txt:::
auser.backup
auser.backup.2
buser
cuser

Eu queria saber se existe uma maneira de comparar essas listas de arquivos vagamente semelhantes, em que auser_backup e auser.backup , juntamente com auser_backup2 e auser.backup.2 , seriam contados como duplicatas.

Talvez haja outro passo para renomear todas as entradas para que os formatos estejam corretos? Eu estou meio perdido.

    
por mktoaster 21.01.2015 / 10:10

1 resposta

1

Você terá que pré-processar os arquivos para "corrigir" as irregularidades:

fixfile() { sed -r 's/([[:alpha:]])([[:digit:]]+)$/./; s/\./_/g' ""; }
comm -12 <(fixfile backup.txt | sort) <(fixfile backup2.txt | sort)
auser_backup
auser_backup_2
    
por glenn jackman 21.01.2015 / 12:34