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

news2024/11/15 17:59:31

博客主页: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.coloradmin.cn/o/1141401.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

太古妖皇诀攻略,太古妖皇诀什么职业厉害

感受国风手游的魅力,畅游于以山海经为背景的太古妖皇诀。游戏地图广阔,洪荒异兽众多,技能配置酷炫,带来成吨伤害的打击感。与山海经中的精怪为伴,踏上修真之路。此外,万人在线竞技,让您尽情享受…

UG\NX二次开发 清除所有对象高亮

文章作者:里海 来源网站:王牌飞行员_里海_里海NX二次开发3000例,里海BlockUI专栏,C\C++-CSDN博客 感谢粉丝订阅 感谢 qq419469101 订阅本专栏,非常感谢。 简介 UG\NX二次开发 清除所有对象高亮 效果 代码 #include "me.hpp" extern DllExport void ufusr(char* p…

服务网络基础

服务网络基础 目录 前言 从今天开始我们将进入服务网格的学习,服务网格是微服务架构中的一种重要的技术,它可以解决微服务架构中的一些问题,比如服务发现、服务治理、服务监控等等,我们将从服务网格的基础开始,逐步深…

图像特征Vol.1:计算机视觉特征度量【纹理区域特征】

一、前言 🍊什么是计算机视觉特征? 简单来说就是图像特征,对于我们来说,看到一张图片,能很自然的说出和描述图像中的一些特征,但是同样的图片,丢给计算机,只是一个二维矩阵&#xf…

场效应管器件

在面试硬件方面的工作时,我们通常会被提问模电方面的知识。 场效应管简称FET,有三级:源极(S)、漏极(D)、栅极(G);可以实现电压控制电流源;“源极和漏极之间的漏极电流Id,由栅极的负电压进行控制…

Nerfies:可变形神经辐射场

Park K, Sinha U, Barron J T, et al. Nerfies: Deformable neural radiance fields[C]//Proceedings of the IEEE/CVF International Conference on Computer Vision. 2021: 5865-5874. Nerfies 是 Keunhong Park 在 Google 实习时基于 NeRF 模型开发的 可变形神经辐射场 (Def…

Qt界面实现中英文切换

要实现的效果,是下拉列表切换中文和English实现按钮文本中英文内容切换。 实现步骤: 1.在VS中鼠标对Translation Files文件右击,选择“添加”--->“模块”. 在弹窗的窗口中选择“Qt”--->“Qt Translation File”。 添加Translation_e…

操作系统(02326)考试题库

博客主页:https://tomcat.blog.csdn.net 博主昵称:农民工老王 主要领域:Java、Linux、K8S 期待大家的关注💖点赞👍收藏⭐留言💬 目录 单选题多选题主观题 单选题 把并发进程中与共享变量有关的程序段称为…

DoLa:对比层解码提高大型语言模型的事实性

DoLa:对比层解码提高大型语言模型的事实性 摘要1 引言2 方法2.1 事实知识在不同层级上演化2.2 动态早期层选择2.3 预测对比 3 实验3.1 任务3.2 实验设置3.3 多项选择3.3.1 TruthfulQA:多项选择3.3.2 FACTOR:维基、新闻 3.4 开放式文本生成3.4…

polyloss详解

1、常见的泰勒展开公式 2、polyloss引入动机 2.1、polyloss定义 polyloss通过泰勒展开来逼近损失函数的简单框架,将损失函数设计为多项式函数的线性组合 2.2、polyloss主要贡献 提出了一个新的框架来理解和设计损失函数 PolyLoss可以让多项式基根据目标任务和数…

JVM虚拟机:Java对象的头信息有什么?

本文重点 在前面的课程中,我们学习了对象头,其中对象头包含Mark Word和class pointer,当然数组还会有一个数组长度。本文主要分析Mark Work中包含的信息。 Mark Word 以下两张图是一个意思: 32位 32位 64位 以上就是Mark Word会存储的信息,这个意思是说Java对象在不同…

如何使用手机蓝牙设备作为电脑的解锁工具像动态锁那样,蓝牙接近了电脑,电脑自动解锁无需输入开机密码

环境: Win10 专业版 远程解锁 蓝牙解锁小程序 问题描述: 如何使用手机蓝牙设备作为电脑的解锁工具像动态锁那样,蓝牙接近了电脑,电脑自动解锁无需输入开机密码 手机不需要拿出来,在口袋里就可以自动解锁&#xff…

「林曦的亲子美育」讲讲关于阅读的那些事儿

「林曦的亲子美育」是“林曦的小世界”2023年策划的一档新栏目。林曦老师作为一个“小男生的妈妈”,在这些年分享了许多关于亲子教育的心得:以“美”作为连接和最高标准,会护持着小朋友的选择和人生。教育是一个生活的过程。做一餐饭、读一本书、看一张画…

存储器概述

一、存储系统基本概念

vector容器初始化和对象

(1)a.assign(b.begin(), b.begin()3); //b为向量,将b的0~2个元素构成的向量赋给a (2)a.assign(4,2); //是a只含4个元素,且每个元素为2 (3)a.back(); //返回a的最后一个元素 &#xf…

Python入口顶部人体检测统计进出人数

程序示例精选 Python入口顶部人体检测统计进出人数 如需安装运行环境或远程调试,见文章底部个人QQ名片,由专业技术人员远程协助! 前言 这篇博客针对《Python入口顶部人体检测统计进出人数》编写代码,代码整洁,规则&a…

【OpenCV实现平滑图像形态学变化】

文章目录 概要目标腐蚀膨胀开运算结构元素(内核)小结 概要 形态学变化是一组简单的图像操作,主要用于处理二值图像,即只包含黑和白两种颜色的图像。这些操作通常需要两个输入,原始图像和一个内核(kernel&a…

计算机操作系统重点概念整理-第三章 进程同步【期末复习|考研复习】

第三章 进程同步 【期末复习|考研复习】 计算机系统系列文章传送门: 第一章 计算机系统概述 第二章 进程管理 第三章 进程同步 第四章 内存管理 第五章 文件管理 第六章 输出输出I/O管理 文章目录 第三章 进程同步 【期末复习|考研复习】前言三、进程同步3.1 临界资…

腾讯云优惠券、代金券、云服务器折扣券领取方法及使用教程

腾讯云优惠券是腾讯云为用户提供的一种优惠活动,通常包括代金券和折扣券两种类型,代金券可以在购买腾讯云相关产品时直接抵扣订单金额,而折扣券则可以在购买腾讯云相关产品时享受一定的折扣。 腾讯云作为国内领先的云计算服务提供商&#xff…

构建客户门户的痛点及低代码工具解决方案

企业如何做好数字化转型呢? 如果笼统地说起“数字化转型”,这个概念太大了,它涉及到了企业管理中的方方面面。数字化转型是一个持续不断的过程,既要在整体上进行数字规划,也需要从细节入手,将每一个步骤进…