带有上下文的 grep 的 bash 脚本

带有上下文的 grep 的 bash 脚本

我正在编写一个 bash 脚本,使用 grep 搜索短语并将其打印在终端上。我希望用户能够使用 grep 的上下文选项(-C,,)。我创建了一个索引数组,我想用它来制作 grep 的上下文参数(,,,-A)。-Bictx-C NUM-A NUM-B NUM-A NUM1 -B NUM2

ictx对于如何使用下面列出的代码巧妙地处理制作,可以提供一些建议,这将有所帮助。

  while (( $# > 0 )); do
   case "$1" in
     ("-C"|"--context")
         ctx="$2" ; shift ; shift ;;
    
     ("--Bfc"|"--before-context")
         bfctx="$2" ; shift ; shift ;;

     ("--Afc"|"--after-context")
         afctx="$2" ; shift ; shift ;;
   esac
  done

  ictx=()
  [ -n "$bfctx" ] && ictx+=( -B "$bfctx" )
  [ -n "$afctx" ] && ictx+=( -A "$afctx" )

  [[ -z "$ctx" ]] && ctx=8
  (( ${#ictx[@]} == 0 )) && ictx+=( -C "$ctx" )

  grep -ni "${ictx[@]}" -e "$ptrn" -- "$fl"

相关内容