1

Я использую Cygwin для сравнения количества файлов в 2 каталогах. Я использую этот скрипт:

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;

Теперь я должен сравнить файлы в $a и $b . Они должны быть идентичны, но возможно, что $a имеет больше или $b имеет больше.

Может кто-нибудь подсказать, пожалуйста, как это сделать?

У меня есть идея, как перенаправить его, например, в $c и $d а затем grep и т.д., Но у меня есть проблема с синтаксисом. Я был бы признателен, если бы кто-нибудь дал мне пример нахождения различий между этими двумя каталогами.

2 ответа2

2

Если вы пытаетесь синхронизировать файлы, возможно, есть лучший способ (например, rsync)

В любом случае, учитывая 2 каталога с (в основном) одинаковым содержимым, вы можете использовать утилиту diff . Он сообщит вам, какие файлы существуют только в одном каталоге или в другом, и покажет разницу в содержимом файлов (только в текстовом формате), которые имеют совпадающие (под-пути и) имена.

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 ~ $ 
0

Ну ... не бери в голову мой вопрос, потому что я решил его сам. Мне удалось перенаправить вывод каждой переменной в 2 файла. Затем я запустил grep -vf, и у меня это сработало. Спасибо, в любом случае..

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .