需要一个脚本,如果文件存在,则通过文件的读取输入进行以下检查,然后将它们与目录中列出的文件进行比较(如果它们不存在),脚本将报告哪个文件不存在。我还需要格式化输出,以便根据文件名将文件分组到不同的组,组A,B和C等。我希望不存在文件的输出根据文件名中的第二个数字进行排序,而不是根据组。我理解一些bash脚本的基础知识,循环和if语句可以解决问题。以下是我到目前为止的情况。我不太关注脚本报告文件存在我喜欢只知道文件是否丢失且不到3天。
A组
Foo22000.tar.gz
Foo22010.tar.gz
B组
foo25000.tar.gz
foo25100.tar.gz
C组
foo26000.tar.gz
所以我有一个有点工作的解决方案唯一的问题是,如果文件丢失,它将与错误的文件IE进行比较。这不会很明显。因为它会将foo3与foo4进行比较,因为foo3不存在如何解决这个问题?
File list
/home/foo/foo1
/home/foo/foo2
/home/foo/foo3
/home/foo/foo4
Report file
/home/foo/foo1
/home/foo/foo2
/home/foo/foo4
find ~/ -name “foo*” –mtime -3 print>report
Sort report –o report
while read comp1 <&3 && comp2 <&4
do
if [[ $comp1 = comp2 ]] then
echo “file found” >/dev/null
else
echo “$comp1 not found”
fi
done 3<report 4<list
答案 0 :(得分:1)
File=/home/foo
filestr=find /home/foo –name “foo*” –mtime -3 print
for FILE_IT in $(find /home/foo –name “foo*”)
do
fl_it_basename=$(basename $FILE_IT)
grep ${fl_it_basename) $FICHIER_GROUP_A >/dev/null 2>&1
if [ $? -ne 0 ]
then
/// File is not present
else
/// File is present
fi
done