我试图匹配两个目录,如果文件存在于第二个目录中,我想将文件从第一个目录移到第三个目录。
文件名不完全匹配,它们在名称的末尾带有“ _ica”和其他扩展名。
我试图编写一个遍历dir1的脚本,检查它是否在dir2中 如果找到,则移至dir3:
DATA= /home/eegfilesonlyWM/*
PROCESSED= /home/eegfilesonlyWM/icaddata/*
DONE= /home/eegfilesonlyWM/done/
for f in $DATA ; do
fname=${f##*/}
fname=${fname%/}
find /home/eegfilesonlyWM/icaddata/ -iname "${fname*_ica*}" -type f -exec mv {} ./done \;
done
我想从第一个目录复制那些在第二个目录中已经有相应文件的文件。
谢谢您的帮助
答案 0 :(得分:0)
也许这会做您想要的:
#!/usr/bin/env bash
#Directory paths here
DATA=./DATA
PROCESSED=./PROCESSED
DONE=./DONE
#Do the test and copy here
for f in `ls -1 $DATA`; do
#build output name
p="$PROCESSED/${f/\.xxx/}"; #xxx is the file extension of original
p="${p}_ica.yyy"; #yyy is the file extension of the processed
if [ -f $p ] ; then
cp $DATA/$f $DONE
fi
done