使用 cygwin 比较文件列表

使用 cygwin 比较文件列表

我使用 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 它等等,但我的语法有问题。如果有人能给我举个例子,说明如何找出这两个目录之间的内容差异,我将不胜感激。

答案1

如果您尝试同步文件,可能有更好的方法(即rsync

无论如何,只要有两个目录(大部分内容相同)即可使用该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 ~ $ 

答案2

好吧...别介意我的问题,因为我自己解决了。我能够将每个变量的输出重定向到 2 个文件中。然后我运行 grep -vf 并且它对我有用。无论如何,谢谢你。

相关内容