事先建立一个文件夹tempfolder,每一个文件与其他所有文件比较后mv到tempfolder,剩下的文件再与其他文件比较。“两个文件某个内容相同”???????
一行格式的命令:
for i in * ;do for j in * ;do if [ -f "$i" ] && [ -f "$j" ] && [ "$i" != "$j" ]; then echo "$i"," ","$j" ;F1=$(grep 内容 “$i”);F2=$(grep 内容 “$j”) ; if [ "$F1" != "" ] && [ "$F2" != "" ] ;then rm "$i" "$j" ;fi ;fi ;done ;if [ -f "$i" ] ;then mv "$i" ./tempfolder;fi; done
多行格式命令:
for i in * ;do
for j in * ;do
if [ -f "$i" ] && [ -f "$j" ] && [ "$i" != "$j" ]; then
echo "$i"," ","$j" #测试语句
F1=$(grep 内容 “$i”)
F2=$(grep 内容 “$j”)
if [ "$F1" != "" ] && [ "$F2" != "" ] ;then
rm "$i" "$j"
fi
fi
done
if [ -f "$i" ] ;then
mv "$i" ./tempfolder
fi
done
追问两个不同目录下文件比对呐?你这个只能同一个目录下递归
追答问题不是很详细。所以就按简单的情况编写。两个目录也没有问题。只要将for 改一下就可以了,例如
for i in PATH1/* ;do
for j in PATH2/*;do
不过比较的文件只在目录的第一层,没有遍历子目录。