文档章节

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

h
 heavenjackson
发布于 2017/09/06 18:56
字数 231
阅读 1
收藏 0
点赞 0
评论 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
Linux Shell处理文本最常用的工具大盘点

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

linuxprobe16
2016/12/21
25
0
npm scripts 使用指南

Node 开发离不开 npm,而脚本功能是 npm 最强大、最常用的功能之一。 本文介绍如何使用 npm 脚本(npm scripts)。 一、什么是 npm 脚本? npm 允许在文件里面,使用字段定义脚本命令。 上面...

阮一峰
2016/10/11
0
0
Linux Shell 文本处理工具集锦

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

小股儿
2014/01/06
29
0
Linux Shell文本处理工具集锦

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

孟飞阳
2016/07/08
38
0
MongoDB 参考手册

学习《MongoDB 权威指南·第2版》的笔记,简单记录一些概念、注意点、语法糖,方便使用的时候快速查阅、参考。 1. 文档 文档是 MongoDB 中数据的基本单元,非常类似于关系型数据库中的行。 ...

小鱼爱小虾
01/10
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

rabbitmq学习记录(三)

工作队列:一个生产者,多个消费者,生产者直接将消息发送到rabbitmq的队列之中 默认采用的是轮询分配:即不管消费者处理信息的效率,队列给所有消费者轮流发送一条信息,直至消息发送完毕 ...

人觉非常君
22分钟前
0
0
Java 之 反射

反射,剖析 Java类 中的 各个组成部分,映射成 一个个 Java对象,多用于 框架和组件,写出复用性高的通用程序。 测试类代码如下: class Person { private String name; public St...

绝世武神
26分钟前
0
0
华为nova3超级慢动作酷玩抖音,没有办法我就是这么强大

华为nova3超级慢动作酷玩抖音,没有办法我就是这么强大!华为nova3超级慢动作酷玩抖音,没有办法我就是这么强大! 在华为最新发布的nova 3手机上,抖音通过华为himedia SDK集成了60fps、超级...

华为终端开放实验室
31分钟前
0
0
多 SSH Key 实现同一台服务器部署多 Git 仓库

本文以以下需求为背景,介绍详细的做法: 需在同一台服务器同时部署两个不同的 Github 仓库(对 Bitbucket 等 git 服务同样适用) root 用户可在远程登录 SSH 后附上预期的 SSH Key 进行 gi...

yeahlife
34分钟前
0
0
003. es6数值的扩展

一、普通扩展 Number 方法,将字符串、数值转为十进制 : Number('0b111') Number.isFinite() 用来检查一个数值是否为有限的:Number.isFinite(15) Number.isNan() 用来检查一个值是否为NaN N...

秋季长青
48分钟前
0
0
C语言数组和指针的语法糖

对于C语言,我可以这样秀:比如当创建一个数组arr[n]之后,一般我们去遍历数组的时候是for (int i = 0; i < n; i++) { a[i]; }但是我知道下表访问符[]是个语法糖,也就是说a[i]在编译器看来是...

ustbgaofan
56分钟前
0
0
Call to undefined function bcmath()的解决方法

乐意黎的ECS主机环境,Centos7.2 + PHP7 由于使用了bcdiv()函数,运行时总在抛错。 Fatal error: Call to undefined function bcmath() in /usr/loca/apache/htdocs/... on line 4 一查得知:......

dragon_tech
今天
0
0
css优先级

..

architect刘源源
今天
0
0
【转】Twitter的分布式自增ID算法snowflake

结构 snowflake的结构如下(每部分用-分开): 0 - 0000000000 0000000000 0000000000 0000000000 0 - 00000 - 00000 - 000000000000 第一位为未使用,接下来的41位为毫秒级时间(41位的长度可以...

talen
今天
0
0
hive支持行级修改

Hive从0.14版本开始支持事务和行级更新,但缺省是不支持的,需要一些附加的配置。要想支持行级insert、update、delete,需要配置Hive支持事务。 一、Hive具有ACID语义事务的使用场景 1. 流式...

hblt-j
今天
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部