|__WhoAmI__| 2022-04-20 17:16 采纳率: 33.3%
浏览 183
已结题

【shell编程】实现两个目录内文件的比较

遇到的问题

有两个目录,一个目录全是jpg图片,另一个目录全是txt文本,这两个目录内的文件有一一对应的文件名,想通过shell编程来实现文件名的比对,将不匹配的名字或者缺省的输出。
其次还要检查txt文本的格式,缺省或者空白都要输出对应的文件名,就是一个差错检测

img

我的解答思路和尝试过的方法

我自己的想法是不用啥shell编程,我直接在shell文件里面利用命令实现,先将所有文件后缀名删除再用diff命令进行比较。但是效果堪忧,,

  • 写回答

2条回答 默认 最新

  • fuluoyide312 2022-04-20 23:14
    关注

    第一,找出txt目录中的空白文件。
    第二,将jpg和txt目录中的文件一一对应,无法对应的输出文件名。
    要求是这样吗?

    第一个

    find txt目录 -size 0
    

    不就找到txt文件里的空白文件了吗
    第二个

    #!/bin/bash
    function traverse()
    {
            if [ -d $1 ]
            then
                    pushd -n $1
            fi
            while popd
            do
                    OLDIFS=$IFS
                    IFS=$'\n'
                    for file in $(ls)
                    do
                            file="$PWD""/""$file"
                            if [ -d "$file" ]
                            then
                                    pushd -n "$file"
                            else
                                    echo $(basename -s"."${file##*.} $file)>>/tmp/tmp_${file##*.}
                            fi
                    done
                    IFS=$OLDIFS
            done
    }
    rm /tmp/tmp_jpg /tmp/tmp_txt
    traverse $1
    traverse $2
    diff -c4 /tmp/tmp_jpg /tmp/tmp_txt>$HOME/difflist
    

    在你的家目录下生成的difflist记录着两个目录中文件的差别,不知道这样可行吗?

    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 4月21日
  • 创建了问题 4月20日

悬赏问题

  • ¥15 is not in the mmseg::model registry。报错,模型注册表找不到自定义模块。
  • ¥15 安装quartus II18.1时弹出此error,怎么解决?
  • ¥15 keil官网下载psn序列号在哪
  • ¥15 想用adb命令做一个通话软件,播放录音
  • ¥30 Pytorch深度学习服务器跑不通问题解决?
  • ¥15 部分客户订单定位有误的问题
  • ¥15 如何在maya程序中利用python编写领子和褶裥的模型的方法
  • ¥15 Bug traq 数据包 大概什么价
  • ¥15 在anaconda上pytorch和paddle paddle下载报错
  • ¥25 自动填写QQ腾讯文档收集表