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
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,798评论 19 139
  • 一、温故而知新 1. 内存不够怎么办 内存简单分配策略的问题地址空间不隔离内存使用效率低程序运行的地址不确定 关于...
    SeanCST阅读 12,385评论 0 27
  • linux资料总章2.1 1.0写的不好抱歉 但是2.0已经改了很多 但是错误还是无法避免 以后资料会慢慢更新 大...
    数据革命阅读 14,222评论 2 33
  • 已经过去很久了,虽然只是过去了一个月而已,但是感觉过了半个世纪。 怎么说呢,从毕业,不,从来北京到现在。在七月底找...
    北潇阅读 1,391评论 0 0
  • 梅尔基亚德斯归来后没几个月,便经历了一个急剧衰老的过程,很快就被归为那类无用的老翁,他们像幽灵般在卧室间步履蹒跚地...
    言离阅读 3,811评论 1 0