Comparar lista de arquivos usando o cygwin

1

Estou usando o cygwin para contagem de comparação de arquivos em dois diretórios. Estou usando este script:

a=$(ls //NSVA/Matrical/Vitesse/REPORTS | grep .csv | grep $1 | grep -v Pull | wc -l)
b=$(ls //10.9.214.200/Lims/LimsLZ/starlims1/done/Nitrostore_stored/$1 | grep -v Pull |wc -l)

echo "Count of Uploaded files in NS is $a" 
echo "Count of Uploaded files in LZ is $b"

if [ $a -eq $b ]; then
    echo "Count MATCH!";
else
    echo "Count does NOT MATCH!!!";
fi;

Agora, preciso comparar os arquivos em $a e $b . Eles devem ser idênticos, mas pode ser que $a tenha mais ou $b tenha mais.

Alguém poderia me dar conselhos sobre como fazer isso?

Eu tenho uma ideia de redirecioná-lo para, por exemplo, $c e $d e que grep e etc, mas eu tenho um problema com a sintaxe. Eu apreciaria se alguém pudesse me dar um exemplo de encontrar a diferença de conteúdo entre esses dois diretórios.

    
por susik 22.12.2017 / 05:09

2 respostas

2

Se você está tentando sincronizar arquivos, provavelmente há uma maneira melhor (ou seja, rsync )

De qualquer forma, considerando dois diretórios com (principalmente) o mesmo conteúdo, você pode usar o utilitário diff . Ele informará quais arquivos existem apenas em um diretório ou outro, e mostrará uma diferença do conteúdo dos arquivos (somente texto sem formatação) que possuem nomes correspondentes (sub-caminhos e).

ivan@darkstar ~ $ ls dir1 dir2
dir1:
a  b

dir2:
a  c
ivan@darkstar ~ $ diff dir1 dir2
diff dir1/a dir2/a
1c1
< aa00_processes_machine
---
> 00_processes_machine
Only in dir1: b
Only in dir2: c
ivan@darkstar ~ $ 
    
por 22.12.2017 / 07:08
0

Bem ... não importa a minha pergunta, porque eu mesmo resolvi. Consegui redirecionar a saída de cada variável em dois arquivos. Do que eu corri grep -vf e funcionou para mim. Obrigado mesmo assim ..

    
por 22.12.2017 / 20:35