当前位置: 首页 > article >正文

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

博客主页: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

使用

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

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

在这里插入图片描述


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


http://www.kler.cn/a/106542.html

相关文章:

  • 【从零开始的LeetCode-算法】3270. 求出数字答案
  • 【大数据测试 Hive数据库--保姆级教程】
  • 同比缩放,64的倍数,最大值
  • Java21和Java8性能优化详细对比
  • 【Pikachu】任意文件上传实战
  • 针对gitgitee的使用
  • React之服务端渲染
  • Mask Free VIS笔记(CVPR2023 不需要mask标注的实例分割)
  • 腾讯云轻量应用服务器简介_轻量服务器购买指南
  • 从一个webpack loader中学习
  • CloudQuery + StarRocks:打造高效、安全的数据库管控新模式
  • ZooKeeper中节点的操作命令(查看、创建、删除节点)
  • 【Javascript】ajax(阿甲克斯)
  • Elasticsearch打分机制
  • mysql主从搭建(gtid)
  • 《动手学深度学习 Pytorch版》 10.7 Transformer
  • 一篇了解springboot3请求参数种类及接口测试
  • goland无法调试问题解决
  • 基于单片机的数字电压表设计
  • “从部署到优化,打造高效会议管理系统“
  • FreeSWITCH 使用指北(2)-多段音频顺序播放的设置
  • python操作MySQL、SQL注入问题、视图、触发器、事务、存储过程、函数、流程控制、索引(重点)
  • Android笔记(八):基于CameraX库结合Compose和传统视图组件PreviewView实现照相机画面预览和照相功能
  • 图神经网络论文笔记(一)——北邮:基于学习解纠缠因果子结构的图神经网络去偏
  • 基于SpringBoot+SSM苍穹外卖之实战项目
  • C++并发与多线程(6) | 传递临时对象作为线程参数的一些问题Ⅲ