文档章节

通过shell脚本查找代码工程中的指定字段

h
 heavenjackson
发布于 2017/09/06 18:56
字数 231
阅读 1
收藏 0

由于工作需要,需要在Linux环境下进行code的编写。当工程量大的时候,很难找出某个字段出现在那些文件中,因此写了一个shell脚本(文件名:search_tool.sh)进行字段的查找。如,需要查找src目录下含有字段"lht"的文件,及所在的行,只需执行命令:

search_tool.sh ./ lht 

即可在当前文件夹中生成文件search_result,此文件中就包含了所有的查找结果。 如下为脚本文件的对应code:

#!/bin/sh

if [ $# != 2 ]
then
  echo "error args num!"
  exit 1
fi

dir=$1
ref=$2

if [ ! -d "$dir" ]
then
  echo "dir doesn't exit!"
  exit 1
fi

if [ -f "./search_result" ]
then
  rm ./search_result
fi

touch search_result

echo "search for ref : $ref" >> ./search_result
echo >> ./search_result

for cur_file in $(find "$dir" -name "*.h" -o -name "*.cc" -o -name "*.c")
do
  count_searched=$(grep -c "$ref" $cur_file)
  if [ "$count_searched" != "0" ]
  then
    echo "<-----------------------$cur_file----------------------------->" >> ./search_result
    grep -n "$ref" $cur_file >> ./search_result
    echo >> ./search_result
  fi
done

exit 0

© 著作权归作者所有

共有 人打赏支持
h
粉丝 0
博文 3
码字总数 1211
作品 0
深圳
Linux Shell 文本处理工具集锦

Linux Shell 文本处理工具集锦 本文将介绍Linux下使用Shell处理文本时最常用的工具: find、grep、xargs、sort、uniq、tr、cut、paste、wc、sed、awk; 提供的例子和参数都是最常用和最为实用...

平凡之路
2014/10/13
0
0
使用 Spring Roo 开发应用程序

在此 Spring Roo 系列的 Spring Roo 简介,第 1 部分:从源代码构建 中,我们使用 Spring Roo 构建了一个小的企业会议应用程序。此处,我们将使用 Spring Roo 将简单的 CRUD web 应用程序扩展...

IBMdW
2011/05/04
4.1K
0
Linux中Shell的用法

本文结合大量实例阐述如何编写一个shell脚本。   为什么要进行shell编程   在Linux系统中,虽然有各种各样的图形化接口工具,但是sell仍然是一个非常灵活的工具。Shell不仅仅是命令的收集...

浪泉
2016/12/28
0
0
其他文本处理命令以及bash变量中的一些字符串的处理方法

其他的文本处理命令: 1.wc 2.cut命令: cut - 在文件的每一行中提取片断 注意:能够被cut修剪的文件或数据内容,一般是具有某种特定格式或结构的文本文件或数据内容; 如 :/etc/passwd 格式...

狐狸和鳄鱼
06/26
0
0
朗科实习期间心得笔记(八)

其他的文本处理命令: wc命令 cut命令 在文件的每一行中提取片断 注意:能够被cut命令修剪的文本文件或数据内容,一般是具有某种特定格式或结构的文本文件或数据内容;如:/etc/passwd cut [...

sherlockR
2017/11/22
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Spring JdbcTemplate模板模式与回调结合分析

在看Spring的JdbcTemplate的时候,看到其将模板模式和回调模式结合使用的实现,可以精妙的解决很多的问题。详见Spring中涉及的设计模式总结中的关于模板模式和回调模式结合的具分析,本文利用...

宸明
29分钟前
0
0
docker update:更新一个或多个容器的配置

更新容器的配置 docker update:更新一个或多个容器的配置。 具体内容请访问:https://docs.docker.com/engine/reference/commandline/update/#options 语法:docker update [OPTIONS] CONTA...

lwenhao
今天
1
0
unload事件

unload事件不触发的原因分析 1.代码位置不对,应该优先加载,不能放到回调函数中 2.浏览器不支持 3.最可能的原因,unload事件中触发的函数是一个异步执行的函数,浏览器是不允许在窗口关闭之后在...

狮子狗
今天
1
0
DbForge Schema Compare for MySQL入门教程:如何连接到数据库

【dbForge Schema Compare for MySQL下载】 要创建连接: 1. 在“Connection” 工具栏上单击“New Connection”按钮 。 2. 在“Host” 框中输入主机名。 3. 在“Port” 框中输入端口信息。默...

Miss_Hello_World
今天
2
0
spring中事务的应用

spring中事务管理的两种方式 编程式事务使用TransactionTemplate或者直接使用底层的PlatformTransactionManager。对于编程式事务管理,spring推荐使用TransactionTemplate。 声明式事务是建立...

狂奔的熊二
今天
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部