获取两个文件夹下不同的文件和相同的文件并复制到其他目录

是这样:把A文件夹和B文件夹下都有的文件放到D目录,A有B没有,B有A没有的文件放到C目录

With shell:

#!/bin/bash

for a in `ls A`
    do 
    echo $a
    if [ -f /Users/cescwu/test/B/$a ];then
        cp /Users/cescwu/test/A/$a /Users/cescwu/test/D/
    else
        cp /Users/cescwu/test/A/$a /Users/cescwu/test/C/
    fi
    done

for a in `ls B`
    do
    echo $a
    if [ -f /Users/cescwu/test/A/$a ];then
        cp /Users/cescwu/test/B/$a /Users/cescwu/test/D/
    else
        cp /Users/cescwu/test/B/$a /Users/cescwu/test/C/
    fi
    done

或者

#!/bin/bash

for a in `ls A`
    do 
    echo $a
    if [ -f /Users/cescwu/test/B/$a ];then
        cp /Users/cescwu/test/A/$a /Users/cescwu/test/D/
    fi
    done

for a in `diff A B|grep 'Only in A'|awk -F ':' '{print $2}'`
    do
    cp /Users/cescwu/test/A/$a /Users/cescwu/test/C/
    done

for a in `diff A B|grep 'Only in B'|awk -F ':' '{print $2}'`
    do
    cp /Users/cescwu/test/B/$a /Users/cescwu/test/C/
    done

With python:

import os,shutil
Alist = []
Blist = []
pdir = '/Users/cescwu/test/'

def walkdir(dirname,list):
    ls = os.listdir(dirname)
    for l in ls:
        list.append(l)
    return list

for i in Alist:
    if i in Blist:
        shutil.copyfile(pdir + 'A/' + i, pdir + 'D/' + i)
    else:
        shutil.copyfile(pdir + 'A/' + i, pdir + 'C/' + i)

for i in Blist:
    if i in Alist:
        shutil.copyfile(pdir + 'B/' + i, pdir + 'D/' + i)
    else:
        shutil.copyfile(pdir + 'B/' + i, pdir + 'C/' + i)

其实很简单的一个问题

发表评论

电子邮件地址不会被公开。 必填项已用*标注