linux使用shell搜尋尋找文本的幾種方法分享

來源:互聯網
上載者:User

   日誌的大小很大,伺服器一般也是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

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.