我使用 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 并且它对我有用。无论如何,谢谢你。