如何使用diff在linux下比较两个文件夹下相同文件的内容。请各位大哥大姐指教。。。
如何使用diff在linux下比较两个文件夹下相同文件的内容。请各位大哥大姐指教。。。
8 回复
diff -r
?
@alsotang 这个好像只能比较两个文件,不能比较两个文件夹下的相同文件,比如A文件夹下边有a.tex,b.txt,c.txt,B文件夹下边有a.tex,b.txt,c.txt。然后要分别比较A,B下边相同文件名的文件内容。是文件的具体内容。关键是如果文件数目比较少,还可以手工一对一对进行比较,但是如果数目文件数量很大的话,可能就不太容易了。
apt-get install meld
meld file-a file-b
meld 不错
@fengxiaolong 不过这个命令好像在ppc64上不行呀。还是很感谢哈
可以写个bash脚本文件:
#!/bin/bash
for commonfile in `find "$@" -maxdepth 1 -type f -name "*" -printf '%f\n' |
sort | uniq -c | sed -n "s/^ *$# //p"`
do
filelist=""
for targetdir in $@
do
filelist=$filelist" $targetdir/$commonfile"
done
output=`diff $filelist`
if [ $? -eq 1 ]
then
echo -e "== $commonfile ==\n"
echo -e "$output\n"
fi
done
假设脚本文件名为meld.sh
,执行chmod +x meld.sh
,添加执行权限。
用法: meld.sh dir1 dir2 dir3 ...
例如,
# 比较两个文件夹tmp1和tmp2下面名字相同的文件:
# 如果文件的内容有不同,则输出这个文件名和不同之处
$ ./meld.sh tmp1 tmp2
@wangxuq 这样的啊,嘻嘻,木有在那个平台上搞过滴~