shell脚本——通过关键字查找文件路径

xiaoxiao2021-02-28  54

#!/bin/bash echo -e "输入查找文件内的关键字:" read  key if [ "$key" == "" ]; then     echo -e "keyword can not be null!\n"     exit 0 fi keyword=$key echo -e "\n输入文件的初始路径路径:" read dir #判断该路径是否存在,并且是目录,不存在输出提示 test ! -d $dir && echo -e "The $dir is not exist in your system.\n\n" && exit 0   echo -e "\n---------------You find files are:---------------\n" #统计文件个数 file_count=0 #递归查看所有目录,即最深路径,不显示空行 file_list=`ls -R $dir 2> /dev/null | grep -v '^$'` for file_name in $file_list do temp=`echo $file_name | sed 's/:.*$//g'` #如果临时文件变量temp是一个目录,而非文件,就将该目录赋值给cur_dir变量     if [ "$file_name" != "$temp" ]; then         cur_dir=$temp  else         #用file命令查看文件真身是否为ASCII text类型         file_type=`file $cur_dir/$file_name | grep "text"`         if [ "$file_type" != "" ]; then             temp=`grep $keyword $cur_dir/$file_name 2> /dev/null`             #echo "--"$cur_dir/$file_name #临时显示,调试用             if [ "$temp" != "" ]; then                 echo $cur_dir/$file_name                 #文件个数加1                 let file_count++             fi         fi     fi done   echo -e "\n-------------------------------------------------" #文件个数 echo -e "\n\nFiles Total: $file_count"  
转载请注明原文地址: https://www.6miu.com/read-78999.html

最新回复(0)