1. <fieldset id='g44n'></fieldset>
      <span id='g44n'></span>
    2. <tr id='g44n'><strong id='g44n'></strong><small id='g44n'></small><button id='g44n'></button><li id='g44n'><noscript id='g44n'><big id='g44n'></big><dt id='g44n'></dt></noscript></li></tr><ol id='g44n'><table id='g44n'><blockquote id='g44n'><tbody id='g44n'></tbody></blockquote></table></ol><u id='g44n'></u><kbd id='g44n'><kbd id='g44n'></kbd></kbd>
    3. <i id='g44n'><div id='g44n'><ins id='g44n'></ins></div></i>
      <ins id='g44n'></ins>

      <code id='g44n'><strong id='g44n'></strong></code>

      <dl id='g44n'></dl>

        <i id='g44n'></i>
        <acronym id='g44n'><em id='g44n'></em><td id='g44n'><div id='g44n'></div></td></acronym><address id='g44n'><big id='g44n'><big id='g44n'></big><legend id='g44n'></legend></big></address>

          1. linux使用shell搜索查找文本的几种方法分享

            • 时间:
            • 浏览:7
            • 来源:124软件资讯网

                日志的巨细很大  ,服务器一样平常也是Linux、HP、AIX等 ,每次都下载回来就贫苦的要命  ,在开源中国看到下面内容  ,很适用 。

                1.使用find和xargs下令

                代码如下:

                find dir | xargs grep str # dir是指某个目录

                find file | xargs grep str # file是指某个文件2.

                第2种要领是直接使用grep下令

                代码如下:

                grep str dir/* # dir是指某个目录  ,但不递归搜索其子目录

                grep -r str dir/* #使用-r选项  ,递归搜索其子目录

                grep str file #file是指某个文件

                3.第3种要领是综合以上两种

                代码如下:

                #!/bin/bash

                #find_str.sh

                if [ $# -lt "2" ]; then

                echo "Usage: `basename $0` path name [option]"

                exit 1

                fi

                #!-r表现递归处置惩罚子目录,-i表现忽略巨细写

                path=$1

                name=$2

                shift

                shift

                for option in "$@"

                do

                case $option in

                -r) dir_op="-r"

                ;;

                -i) lu_op="-i"

                ;;

                *) if [ -n "$option" ]; then

                echo "invalid option"

                exit 1

                fi

                ;;

                esac

                done

                grep_str_of_file()

                {

                file=$1

                str=$2

                out=$(grep -n $lu_op "$str" "$file")

                if [ -n "$out" -a "$file" != "$0" ]; then

                echo "$file: $out"

                fi

                }

                find_str()

                {

                if [ -d "$1" ]; then

                for file in $1/*

                do

                if [ "$dir_op" = "-r" -a -d "$file" ]; then

                find_str $file $2

                elif [ -f "$file" ]; then

                grep_str_of_file $file $2

                fi

                done

                elif [ -f "$1" ]; then

                grep_str_of_file $1 $2

                fi

                }

                使用要领

                代码如下:

                $ find_str $path $name