• 自动化工具-文件清单对比


    博客主页:https://tomcat.blog.csdn.net
    博主昵称:农民工老王
    主要领域:Java、Linux、K8S
    期待大家的关注💖点赞👍收藏⭐留言💬
    家乡

    背景

    最近的工作中,领导需要比较指定两个文件夹内,文件清单的差异。本来想的直接用眼睛看,但我发现那两个文件夹的文件数量还挺多,看了一会儿,眼睛都花了,我就想着写个简单的脚本实现。

    代码

    #!/bin/bash
    # ------------------------------------------
    # Filename    : compare.sh
    # Version     : 1.1
    # Date        : 2023-9-13 18:30:23
    # Author      : 农民工老王@CSDN
    # Email       : scwja@qq.com
    # Website     : https://blog.csdn.net/monarch91
    # Description : 检查两个文件夹文件清单的异同
    # ------------------------------------------
    if [ "w$3" = w ]; then
      dir1Files=`ls -l $1 |awk '{print $9}'`
      dir2Files=`ls -l $2 |awk '{print $9}'`
    fi
    dir1Files=`ls -l $1 |grep "$3"|awk '{print $9}'`
    dir2Files=`ls -l $2 |grep "$3"|awk '{print $9}'`
    
    commonStr=""
    
    for line in  $dir1Files
    do
      found=0
      for l in  $dir2Files
      do
        if [ "w${line}" = "w${l}" ]; then
            found=1
            commonStr="${commonStr}共有文件: ${line}\n"
            break
        fi
      done
    
      if [ ${found} -eq 0 ]; then
        echo "${1} 独有文件: ${line} 。"
      fi
    done
    
    echo " "
    
    for line in  $dir2Files
    do
      found=0
    
      for l in  $dir1Files
      do
        if [ "w${line}" = "w${l}" ]; then
            found=1
            break
        fi
      done
    
      if [ ${found} -eq 0 ]; then
        echo "${2} 独有文件: ${line} 。"
      fi
    done
    
    echo " "
    
    if [ -n "${commonStr}" ]; then
      echo -e "${commonStr}"
    else
      echo "未发现同名文件。"
    fi
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62
    • 63

    使用

    如下图所示的两个文件夹,存在以下文件。
    在这里插入图片描述运行./compare,sh ${文件夹A} ${文件夹B} ${需要过滤的关键词}命令即可实现比较,其中${需要过滤的关键词}是指只有文件名包含此关键词时,才纳入比较的对象,这个参数可以不写,那就表示比较所有文件。

    例如:./compare,sh locale-a locale-b qm

    在这里插入图片描述


    如需转载,请注明本文的出处:农民工老王的CSDN博客https://blog.csdn.net/monarch91 。

  • 相关阅读:
    基于野马优化算法的函数寻优算法
    Rust的模块化
    pytorch导出为onnx,使用onnxruntime进行推理
    【备考网络工程师】如何备考2023年网络工程师之错题集篇(2)
    第五章 Linux常用应用软件
    springboot自定义注解防止表单重复提交
    深入分析JVM执行引擎
    Mybatis之SqlSessionFactoryBuilder
    详解 C++ 实现K-means算法
    traffic control
  • 原文地址:https://blog.csdn.net/monarch91/article/details/132853897