Se eu tiver um arquivo A
contendo uma lista de campos:
2017-04-23
2017-04-30
2017-05-07
2017-05-14
2017-05-21
2017-05-28
2017-06-04
2017-06-11
2017-06-18
2017-06-25
E outro arquivo B
contendo uma lista de campos:
2017-04-23
2017-04-30
2017-05-07
2017-05-14
2017-05-21
2017-05-28
2017-06-04
2017-06-11
2017-06-18
2017-06-25
2017-07-02
2017-07-09
2017-07-16
2017-07-23
Como posso rapidamente diferenciar esses dois arquivos onde quero saber todos os campos no arquivo B
que são não presente no arquivo A
?
Este não é um diff regular onde eu quero ver uma diferença relativa entre os arquivos, mas mais como uma comparação de hash, onde cada linha é uma entrada em um mapa. Eu quero obter uma lista de todas as linhas no arquivo B
que não estão presentes no arquivo A
para que eu possa removê-los onde cada linha do arquivo A
representa um diretório que deve ser preservado.
Eu estou procurando uma solução Bash / CoreUtils.
<(sort filename)
grep
é a ferramenta certa para o trabalho, embora não seja nem Bash nem da CoreUtils:Todas essas opções são compatíveis com POSIX. De
man 1 grep
:fonte
Outra maneira com alguns canos
editar- UUOC
Não há necessidade de gato
fonte
A
eB
igualmente, enquanto no problema original esses arquivos não são intercambiáveis. E se houver uma linha emA
que não está emB
?sort A A B | uniq -u
. :)