zoukankan      html  css  js  c++  java
  • Linux_shell脚本_遍历文件夹下所有文件

    参考:lunar1983的专栏

    实现:从给定目录树中grep出含制定字符串的行,并给出所在路径

    代码如下所示:

    #!/bin/sh -
    if [ $# -ne 2 ]
            then echo "usage traverse <dir> <str>"
            exit
    fi
    {
    function ergodic(){
    for file in ` ls $1`
    do
                    if [ -d $1"/"$file ] #如果 file存在且是一个目录则为真
                    then
                          ergodic $1"/"$file $2
                    else
                          local path=$1"/"$file #得到文件的完整的目录
                          local name=$file       #得到文件的名字
                          if [[ `cat $path | grep $2` ]]
                                then echo "" 
                                    echo LOC:$path
    
                          fi
                          cat –n $path | grep $2
                   fi
    
    done
    }
    }
    ergodic $1 $2

    效果图:

    image

    还有一种方法,可以直接调用find指令完成查找文件,将结果输出至grep(参考APUE(3),p190)

    对于find,我们使用选项-type f限制输出列表只包含普通文件。

    这样做的目的是,grep命令不能在目录中搜索模式,我们也想避免不必要的出错消息。

    find . -type f -print | xargs grep STU

    image

    ps:如果要想在压缩文件内寻找文本片段,可以使用:

    find . -type f -print | xargs bzgrep STU

    done

  • 相关阅读:
    内存与缓存认识
    翻转字符串里的单词
    c++ STD Gems07
    C++ STD Gems06
    C++ STD Gems05
    Silverlight RIA Services基础专题
    超漂亮的WPF界面框架(Modern UI for WPF)
    实验三——阶乘
    实验二
    实验一 Java环境的搭建&Eclipse的安装
  • 原文地址:https://www.cnblogs.com/shenerguang/p/3762802.html
Copyright © 2011-2022 走看看