【问题标题】:Check with filename in two different directories(Unix)检查两个不同目录中的文件名(Unix)
【发布时间】:2017-03-17 23:52:55
【问题描述】:

假设我有两个不同的目录 /root/dir1 和 /root/dir2。 Dir1 有一些扩展名为 .xls 的文件。我必须将 dir1 中的文件名(带有 .xls ext)与 dir2(.xls ext)中的文件名进行比较,如果匹配则将相应的文件移动到 dir3,如果不匹配则将文件移动到 dir2。 帮我处理unix中的脚本。

【问题讨论】:

标签: unix


【解决方案1】:

例如:

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

【讨论】:

  • 嗨,它对我有用。谢谢。如果“dir1”中没有xml文件,您能否建议如何将其记录到文件中。因为它会抛出 dir 不存在的错误。
  • 你应该可以做到:if [ -f dir1/*.xls ]; then ... (commands); fi
【解决方案2】:

试试这个:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-05
    • 2018-07-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多