在指定文件夹中查找指定关键字,并输出关键字包括的次数

因为要查看相关统计代码是不是部署多了。。SO。。。。

是把网上的脚本改了一下,增加了次数输出和判断。。

并且不用交互式输出,直接在命令后面接关键字和指定目录。。。

#!/bin/bash
#find files contains a keyword
#write by xiaojing.zhao
#2012.12.14 

echo -e "\nThis is a script to find all the files in a specified path contains a keyword!" 

echo -e "\nPlease input a keyword:"
#read key
#if [ "$key" == "" ]; then
#    echo -e "keyword can not be null!\n"
#    exit 0
#fi
#keyword=$key 

#echo -e "\nPlease input your specified path:"
#read dir
#判断该路径是否存在,并且是目录,不存在输出提示
keyword=$1
dir=$2

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" 

#keyword=JAVA_OPTS
#dir=/jboss/jboss-eap-4.3/jboss-as/ 

#统计文件个数
file_count=0
#递归查看所有目录,即最深路径,不显示空行
file_list=`ls -R $dir 2> /dev/null | grep -v ‘^$‘`
for file_name in $file_list
do
    #临时文件变量temp,将ls -R即file_list中的文件名中所有匹配:后接一个或多个任意字符(.代表任意字符,*代表0个或多个$代表行尾结束符)全局替换为无
    #简单的说,就是把file_name变量中的匹配:的行,将:后内容替换为空
    temp=`echo $file_name | sed ‘s/:.*$//g‘`
    #如果临时文件变量temp是一个目录,而非文件,就将该目录赋值给cur_dir变量
    if [ "$file_name" != "$temp" ]; then
        cur_dir=$temp
        #echo "-"$cur_dir #临时显示,调试用
    else
        #用file命令查看文件真身是否为ASCII text类型
        file_type=`file $cur_dir/$file_name | grep "text"`
        if [ "$file_type" != "" ]; then
            temp=`grep $keyword $cur_dir/$file_name|wc -l 2> /dev/null`
            #echo "--"$cur_dir/$file_name #临时显示,调试用
            if [ "$temp" != "" ] && [ $temp -gt 0 ]; then
                echo $cur_dir/$file_name $temp
                #文件个数加1
                let file_count++
            fi
        fi
    fi
done 

echo -e "\n-------------------------------------------------"
echo -e "\n\nFiles Total: $file_count"
echo -e "\nFind Finished!\n" 

时间: 2024-08-07 15:47:50

在指定文件夹中查找指定关键字,并输出关键字包括的次数的相关文章

WPF获取读取电脑指定文件夹中的指定文件的地址

1 //保存指定文件夹中的指定文件的地址 2 3 string List<string> mListUri = new List<string>(); 4 5 //文件夹地址 6 7 string folderName = Environment.CurrentDirectory; 8 9 /// <summary> 10 /// 读取文件夹中指定文件 11 /// </summary> 12 public void LoadAllFile() 13 { 1

python 读取指定文件夹中的指定文件类型的文件名

import numpy as np import os path = 'F:\\wenjian'#指定文件所在路径 filetype ='.csv'#指定文件类型 def get_filename(path,filetype): name =[] final_name = [] for root,dirs,files in os.walk(path): for i in files: if filetype in i: name.append(i.replace(filetype,''))#生

C#遍历指定文件夹中的所有文件(转)

原文链接:http://www.cnblogs.com/qianqianfy/archive/2009/07/08/1518974.html 1. C#遍历指定文件夹中的所有文件 DirectoryInfo TheFolder=new DirectoryInfo(folderFullName); //---遍历文件夹 foreach(DirectoryInfo NextFolder in TheFolder.GetDirectories()) this.listBox1.Items.Add(Ne

C#读取指定文件夹中的所有文件

C#遍历指定文件夹中的所有文件 DirectoryInfo TheFolder=new DirectoryInfo(folderFullName);//遍历文件夹foreach(DirectoryInfo NextFolder in TheFolder.GetDirectories())   this.listBox1.Items.Add(NextFolder.Name);//遍历文件foreach(FileInfo NextFile in TheFolder.GetFiles())   thi

[转]C#中调用资源管理器(Explorer.exe)打开指定文件夹 + 并选中指定文件 + 调用(系统默认的播放类)软件(如WMP)打开(播放歌曲等)文件

原文:http://www.crifan.com/csharp_call_explorer_to_open_destinate_folder_and_select_specific_file/ C#中调用资源管理器(Explorer.exe)打开指定文件夹 + 并选中指定文件 + 调用(系统默认的播放类)软件(如WMP)打开(播放歌曲等)文件 折腾: C#中如何在右下角添加提示窗口,用于显示打开文件和文件夹 的过程中,需要实现,点击对应LinkLabel后,调用资源管理器,打开对应的文件夹. [

删除指定文件夹中除保留的文件外的所有文件批处理 删除指定文件夹下的空文件夹,包括子目录批处理

删除指定文件夹中除保留的文件外的所有文件批处理 @echo off set "ext= sln csproj" for /f "delims=" %%a in ('dir /b/s/a-d *.*') do ( set .= if /i not "%%~nxa"=="%~nx0" ( for %%i in (%ext%) do if /i "%%~xa"==".%%i" set .=.

C# 读取指定文件夹中的全部文件,并按规则生成SQL语句!

本实例的目的在于: 1 了解怎样遍历指定文件夹中的全部文件 2 控制台怎样输入和输出数据 代码: using System; using System.IO; namespace ToSql{ class ToSql{ static void Main(){ string path = System.Environment.CurrentDirectory; System.Console.WriteLine("输入要读取的文件夹名"); string name = Console.Re

C#中拷贝指定文件夹下的所有文件夹目录到指定文件夹中的方法

原文地址:http://www.biye5u.com/article/Csharp/fileprog/2011/4198.html 本文给出了一个在C#中拷贝指定文件夹下的所有文件夹目录到指定文件夹中的方法. public static void CopyFolder(string strFromPath,string strToPath){       //如果源文件夹不存在,则创建       if (!Directory.Exists(strFromPath))       {      

VIM在文件夹中查找

在vim中提供2中方法来在其他文件或者文件夹中搜索字符串,第一种是vimgrep还有一种是grep. 如果只是在当前打开的文件中查找字符串的,使用 :? 后面加上想要搜索的字符串就可以. 这里要解决的是在别的文件中,也许这个文件还没有打开,或者需要在多个文件中操作,比如在当前文件夹下面所有.c的文件中查找,或者在莫个文件夹中查找.这些情况下,我们可以使用imgrep或者grep.这里只介绍vimgrep. 这是个vim的内部命令,因为可以在vim内部直接使用, :vimgrep 这个命令还可简写