遇到的问题
有两个目录,一个目录全是jpg图片,另一个目录全是txt文本,这两个目录内的文件有一一对应的文件名,想通过shell编程来实现文件名的比对,将不匹配的名字或者缺省的输出。
其次还要检查txt文本的格式,缺省或者空白都要输出对应的文件名,就是一个差错检测
我的解答思路和尝试过的方法
我自己的想法是不用啥shell编程,我直接在shell文件里面利用命令实现,先将所有文件后缀名删除再用diff命令进行比较。但是效果堪忧,,
有两个目录,一个目录全是jpg图片,另一个目录全是txt文本,这两个目录内的文件有一一对应的文件名,想通过shell编程来实现文件名的比对,将不匹配的名字或者缺省的输出。
其次还要检查txt文本的格式,缺省或者空白都要输出对应的文件名,就是一个差错检测
我自己的想法是不用啥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记录着两个目录中文件的差别,不知道这样可行吗?