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

遇到的问题

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

img

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

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

第一,找出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记录着两个目录中文件的差别,不知道这样可行吗?

用py方便点,或者C语言,或者用shell里面的if判断