红联Linux门户
Linux帮助

写个小程序来比对两个目录下的不同文件

发布时间:2015-11-18 10:38:56来源:linux网站作者:bendanban

我写的是 bash shell的脚本。 用一个递归函数来搜索两个目录下不同的文件。

实际上我是用它来检测优化后程序的输出结果的。拿出来写在这里,也许你也可以用。


1.代码

#!/bin/bash 
# check_dirs.sh 

check_files() { 
local FISRTDIR=$1 
local SECONDDIR=$2 
local FILES=`ls $FISRTDIR/ -Al | grep -vE "^[dl]" | awk '{print $9}'` 
local i 
for i in $FILES 
do 
echo $FISRTDIR/$i  
diff $FISRTDIR/$i $SECONDDIR/$i 1>/dev/null 2>&1 
if [ $? -ne 0 ] 
then 
echo "vimdiff $FISRTDIR/$i $SECONDDIR/$i" 
#vimdiff $FISRTDIR/$i $SECONDDIR/$i 
fi 
done 

 
check_dirs() 

local FISRTDIR=$1 
local SECONDDIR=$2 
local i 
check_files $FISRTDIR $SECONDDIR 
DIRS=`ls $FISRTDIR/ -Al | grep -E "^d" | awk '{print $9}'` 
for i in $DIRS 
do 
check_dirs $FISRTDIR/$i $SECONDDIR/$i 
done 


2.使用方法

[]$ source ./check_dirs.sh 
[]$ check_dirs dir1 dir2 

他就会输出不同的文件了。

试试吧。挺好用的。


linux批量转换整个目录下的文件编码为UTF-8:http://www.linuxdiyf.com/linux/14592.html

Ubuntu用shell脚本实现将当前目录下所有目录中的某一类文件拷贝:http://www.linuxdiyf.com/linux/12835.html