通过从文件中获取输入来检查文件是否存在

时间:2013-07-18 11:19:47

标签: bash if-statement

需要一个脚本,如果文件存在,则通过文件的读取输入进行以下检查,然后将它们与目录中列出的文件进行比较(如果它们不存在),脚本将报告哪个文件不存在。我还需要格式化输出,以便根据文件名将文件分组到不同的组,组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

1 个答案:

答案 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