脚本实现查找给定后缀的文件

来源:互联网 发布:java调用dll JNI 编辑:程序博客网 时间:2024/06/15 07:56

问题场景

用脚本实现在一个文件夹下寻找给定后缀的所有文件。

脚本一

#!/bin/sh  #非递归#============ get the file name ===========  echo -e "请输入你要读取的文件夹路径\n当前路径为${PWD}"  read InputDir#判断输入路径是不是目录  if [ -d ${InputDir} ];    then     echo "你输入的文件夹路径为${InputDir}"      echo -e "请输入你要将数据输出保存的文件路径\n当前路径为${PWD}"      read OutputFile        echo "输出保存的文件路径为${OutputFile}"      : > ${OutputFile}   #清空OutputFile      echo -e "请输入要匹配文件后缀名"    read tarPostfix    #循环读取文件夹名      for file_a in ${InputDir}/*;    do          temp_file=`basename $file_a`          full_path="`pwd`/${temp_file}"        postfix=${full_path#*.}    #获得后缀名        if [[ ${temp_file} = ${OutputFile} || ${full_path} = ${OutputFile} ]]; #跳过目标输出文件            then            continue        else            if [ ${postfix} = ${tarPostfix} ];                then                 echo "${full_path}" >> $OutputFile            else                continue            fi        fi    done    echo    #判断目标文件存在不    if [[ -f ${OutputFile} && `stat -c%s ${OutputFile}` -gt 0 ]];        then        echo "成功找到匹配的文件如下"        echo `cat ${OutputFile}`    else        echo "没有找到匹配的文件"    fielse    echo "您输入的目录不存在,尝试判断是不是文件..."    if [ -f ${InputDir} ];        then        echo "您输入的文件路径为${InputDir}"         echo -e "请输入要匹配文件后缀名"        read tarPostfix        temp_file=`basename ${InputDir}`          full_path="`pwd`/${temp_file}"        postfix=${full_path#*.}    #获得后缀名        echo        if [ ${postfix} = ${tarPostfix} ];            then            echo "匹配成功,绝对路径:${full_path}"         else            echo "该文件没有匹配成功"        fi    else        echo        echo "您输入的文件不存在"    fifi  

脚本二

#!/bin/sh  #递归#============ get the file name ===========  echo -e "请输入你要读取的文件夹路径\n当前路径为${PWD}"  read InputDir  echo "你输入的文件夹路径为${InputDir}"  echo -e "请输入你要将数据输出保存的文件路径\n当前路径为${PWD}"  read OutputFile    echo "输出保存的文件路径为${OutputFile}" echo -e "请输入匹配的后缀"  read postfix: > ${OutputFile}   #清空OutputFile  #递归读取文件夹 if [ -d ${InputDir} ];    then    find ${InputDir} -name '*.'${postfix} > ${OutputFile}    size=stat -c%s ${OutputFile}    if [ size = 0 ];        then        echo '没有找到匹配的文件'    elif [ size > 0 ];        then        echo '匹配成功,文件如下:'        echo `cat ${OutputFile}`    fielse    echo '目录不存在'fi
0 0