2015-10-05 55 views
0

假设我有两个不同的目录/ root/dir1 &/root/dir2。 Dir1有一些扩展名为.xls的文件。我必须将dir1中的文件名称(使用.xls ext)与dir2(.xls ext)中的文件名称进行比较,如果匹配,则将相应的文件移至dir3,如果不匹配,则将该文件移至dir2。 帮助我在UNIX中的脚本。检查两个不同目录中的文件名(Unix)

+0

在这里看到从简单的谷歌。 http://www.cyberciti.biz/tips/find-out-if-file-exists-with-conditional-expressions.html – MatthewD

回答

0

例如:

for f in $(comm -1 -2 <(ls dir1) <(ls dir2)); do cp dir1/$f dir3/; done 
for f in $(comm -2 -3 <(ls dir1) <(ls dir2)); do cp dir1/$f dir2/; done 
+0

嗨, 它正在为我工​​作。谢谢。 如果在“dir1”中没有xml文件,您可以建议如何将它记录到文件中。 因为它会抛出dir不存在的错误。 – Raushan

+0

你应该可以这样做:'if [-f dir1/*。xls];然后'...(命令)'; fi' –

0

试用此:

for file in /dir1/*.xls 
do 
    if [ -f /dir2/$file ] 
    then 
     mv $file $dir3 
    else 
     mv $file $dir2 
    fi 
done 
相关问题