• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            隨筆-159  評(píng)論-223  文章-30  trackbacks-0
            方法1:使用find和xargs命令
                 find dir | xargs grep str,dir是指某個(gè)目錄
                 find file | xargs grep str,file是指某個(gè)文件
               注意:這種方法,會(huì)遞歸搜索子目錄

            方法2:直接使用grep命令
                 grep str dir/*,dir是指某個(gè)目錄,但不遞歸搜索其子目錄
                 grep -r str dir/*,使用-r選項(xiàng),遞歸搜索其子目錄
                 grep str file,file是指某個(gè)文件

            方法3:綜合以上兩種,寫一個(gè)shell腳本,代碼如下 
             1#! /bin/bash
             2# findstr.sh   
             3
             4if [ $# -lt "2" ]; then
             5   echo "Usage: `basename $0` path name [option]"
             6   exit 1
             7fi   
             8
             9path=$1
            10name=$2  
            11shift 
            12shift   
            13
            14for option in "$@"
            15do
            16   case $option in
            17   -r) dir_op="-r"
            18   ;;
            19   -i) lu_op="-i"
            20   ;;
            21   *if [ -"$option" ]; then
            22         echo "invalid option"
            23         exit 1
            24       fi
            25   ;;
            26  esac
            27done    
            28
            29grep_str_of_file()
            30{
            31     file=$1
            32     str=$2
            33     out=$(grep -n $lu_op "$str" "$file")
            34     if [ -"$out" -"$file" != "$0" ]; then
            35        echo "$file: $out"
            36     fi
            37}    
            38
            39find_str()
            40{
            41  if [ -"$1" ]; then
            42     for file in $1/*
            43      do
            44        if [ "$dir_op" = "-r" --"$file" ]; then
            45            find_str $file $2
            46        elif [ -"$file" ]; then
            47           grep_str_of_file $file $2
            48        fi
            49     done
            50 elif [ -"$1" ]; then
            51   grep_str_of_file $1 $2    
            52 fi
            53}  
            54
            55find_str $path $name
              這樣一來(lái),不管$1參數(shù)是目錄還是文件,都能處理,使用示例如下:
                findstr /usr/include main          不遞歸搜索子目錄,大小寫敏感
                findstr /usr/include main -i       不遞歸搜索子目錄,忽略大小寫
                findstr /usr/include main -r       遞歸搜索子目錄,大小寫敏感
                findstr /usr/include main -r  -i   遞歸搜索子目錄,忽略大小寫
             
                findstr main.cpp main              在文件中搜索,大小寫敏感
                findstr main.cpp main -i           在文件中搜索,忽略大小寫 

              上面所述的示例中,str不限于特定的文本,可以是帶正則表達(dá)式的匹配模式。而第3種方法,也可以用sed替換grep來(lái)顯示文本行,在此基礎(chǔ)上能作更多的處理,比如格式化顯示、統(tǒng)計(jì)匹配的文本個(gè)數(shù)、搜索策略等,在此就不詳究了。
            posted on 2011-08-20 19:46 春秋十二月 閱讀(2476) 評(píng)論(0)  編輯 收藏 引用 所屬分類: System
            亚洲va久久久噜噜噜久久天堂| 久久精品国产2020| 国产精品xxxx国产喷水亚洲国产精品无码久久一区 | 精品久久无码中文字幕| 久久免费视频观看| 2021国产精品久久精品| AA级片免费看视频久久| 国产精品久久久久a影院| 中文字幕一区二区三区久久网站| 四虎国产精品成人免费久久| 久久精品无码专区免费青青| 亚洲人AV永久一区二区三区久久| 91精品国产综合久久精品| 日韩精品久久久久久久电影| 99久久www免费人成精品| 综合网日日天干夜夜久久| 久久精品视屏| 久久线看观看精品香蕉国产| 亚洲中文字幕久久精品无码喷水| 久久久精品国产Sm最大网站| 久久国产亚洲精品麻豆| 久久夜色精品国产噜噜噜亚洲AV| 久久国产高清一区二区三区| 国产91色综合久久免费分享| 亚洲精品乱码久久久久久中文字幕 | 91久久精品国产91性色也| 久久精品国产亚洲av高清漫画| 狠狠色综合网站久久久久久久高清 | 精品久久久久久无码人妻热| 69久久夜色精品国产69| 久久久久亚洲av无码专区导航| 77777亚洲午夜久久多人| 波多野结衣AV无码久久一区| 久久www免费人成看片| 日本WV一本一道久久香蕉| 大香伊人久久精品一区二区 | 久久人人爽人人爽人人片AV不| 无码任你躁久久久久久老妇| 欧美与黑人午夜性猛交久久久 | 青青草国产97免久久费观看| 久久亚洲国产成人精品无码区|