#!/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