Bash文本搜索并打开文件定位

Bash文本搜索并打开文件定位。
我们经常需要在一堆源文件中搜搜关键字,例如变量声明,函数定义等,然后打开定义的文件迅速定位到位置。

#!/bin/bash

KEYWORD=$1

IFS=$'\r\n' command eval 'ARRAY=($(find ./ -name "*.go" | xargs grep -nw "${KEYWORD}" 2>/dev/null))'
ARRAYLENGTH=${#ARRAY[@]}
if [ ${ARRAYLENGTH} -eq 0 ]; then
   exit
fi
# show all founds
for (( i=1; i<${ARRAYLENGTH}+1; i++ )); do
  echo $i ${ARRAY[$i-1]}
done
// use pick up a specific file
echo -n "Pick up[1-${ARRAYLENGTH}]: "
read id
if [ $id -le 0 -o $id -gt ${ARRAYLENGTH} ]; then
  exit
fi

FILE=$(echo ${ARRAY[$id-1]} | awk -F\: '{print $1}')
LINE=$(echo ${ARRAY[$id-1]} | awk -F\: '{print $2}')

vim +${LINE} $FILE

你可能感兴趣的:(Bash文本搜索并打开文件定位)