ack-grep 代码全文搜索
安装
ubuntu下要安装ack-grep,因为在debian系中,ack这个名字被其他的软件占用了。 sudo apt-get install ack-grep
特点
大家都说自己的东西好,因此ack官网列出了这工具的5大卖点:
- 速度非常快,因为它只搜索有意义的东西。
- 更友好的搜索,忽略那些不是你源码的东西。
- 为源代码搜索而设计,用更少的击键完成任务。
- 非常轻便,移植性好。
- 免费且开源
better than grep?
先来看下grep的日常用法。
- grep常用操作
-
- grep -r 'hello_world' # 简单用法
- grep '^hello_world' . # 简单正则
- ls -l | grep .py # 管道用法
一些参数:
-c(统记)/ -i(忽略大小)/ -h(不显示名称)/
-l(只显文件名)/ -n(加行号)/ -v(显示不匹配)
这些命令在linux上的适用频率是相当高的,尤其是你用vim做为IDE的话(当然这是说在不知道ack之前)。
ack功能划分
在记忆的时候大体上可以分为这几个部分:
- Searching代码搜索
- Search output搜索结果处理
- File presentation文件展示
- File finding文件查找
- File inclusion/exclusion文件过滤
下面对每一项给几个简单实用的例子。
Searching
简单的文本搜索,默认是递归的。
ack-grep hello
ack-grep -i hello
ack-grep -v hello
ack-grep -w hello
ack-grep -Q 'hello*'
Search File
对搜索结果进行处理,比如只显示一个文件的一个匹配项,或者xxx
ack-grep --line=1 # 输出所有文件第二行 ack-grep -l 'hello' # 包含的文件名 ack-grep -L 'print' # 非包含文件名
File presentation
输出的结果是以什么方式展示呢,这个部分有几个参数可以练习下
ack-grep hello --pager='less -R' # 以less形式展示
ack-grep hello --noheading # 不在头上显示文件
ack-grep hello --nocolor # 不对匹配字符着色
File finding
没错,它可以查找文件,以省去你要不断的结合find和grep的麻烦,虽然在linux的思想是一个工具做好一件事。
ack-grep -f hello.py # 查找全匹配文件
ack-grep -g hello.py$ # 查找正则匹配文件
ack-grep -g hello --sort-files #查找然后排序
File Inclusion/Exclusion
文件过滤,个人觉得这是一个很不错的功能。如果你曾经在搜索项目源码是不小心命中日志中的某个关键字的话,你会觉得这个有用。
ack-grep --python hello #查找所有python文件
ack-grep -G hello.py$ hello # 查找匹配正则的文件
ack配置
也是一个相当赞的功能,对grep了解不多,不知道grep有没有同样的东西。通过配置可以把你的个人习惯做为默认配置,比如我是Python程序员,那默认我要搜索的文件大多数必然是.py的文件。每次搜索时都要输入:--python那就太无聊了。
另外还可以自己指定类型,通过--type-set=conf=.conf,指定一个.conf的文件形式,ack默认提供常见源码的支持。你可以通过:ack-grep --help types查看它支持多少中类型的源码,绝对有你不知道的语言。
下面是一个简单的配置
# 设置排序
--sort-files
#设置文件过滤
--python
--html
--js
--conf
# 设置显示
--noheading
# 定义新的文件类型
--type-set=conf=.conf
# 智能识别大小写
--smart-case
# 设置以less形式展示,设定less参数
--pager=less -R -M --shift 5 -i
ack-grep 代码全文搜索的更多相关文章
- 如何使用ABAP Restful API进行代码的全文搜索
使用这个代码全文搜索的前提条件,是在事务码SFW5里激活业务功能:SRIS_SOURCE_SEARCH 只需要把这个url贴到浏览器里: https://:44355/sap/bc/adt/repos ...
- 命令行的全文搜索工具--ack
想必大家在命令行环境下工作时候,一定有想要查找当前目录下的源代码文件中的某些字符的需求,这时候如果使用传统方案,你可能需要输入一长串的命令,比如这样: 1. grep -R 'string' dir/ ...
- linux下使用ack进行代码搜索
1.安装 wget http://beyondgrep.com/ack-2.12-single-file sudo mv ack-2.12-single-file /usr/bin/ack sudo ...
- MySQL+Sphinx实现全文搜索
最近在做一个搜索引擎,主要是对图书方面的对象级的搜索,首先来了解下Sphinx吧. 它能够提高你的查询的速度,这个不是一般的快. Sphinx是一个基于SQL的全文检索引擎,可以结合MySQL,Pos ...
- coreseek实战(三):全文搜索在php中应用(使用api接口)
coreseek实战(三):全文搜索在php中应用(使用api接口) 这一篇文章开始学习在php页面中通过api接口,使用coreseek全文搜索. 第一步:综合一下前两篇文章,coreseek实战( ...
- MySQL 全文搜索支持, mysql 5.6.4支持Innodb的全文检索和类memcache的nosql支持
背景:搞个个人博客的全文搜索得用like啥的,现在mysql版本号已经大于5.6.4了也就支持了innodb的全文搜索了,刚查了下目前版本号都到MySQL Community Server 5.6.1 ...
- Apache Solr采用Java开发、基于Lucene的全文搜索服务器
http://docs.spring.io/spring-data/solr/ 首先介绍一下solr: Apache Solr (读音: SOLer) 是一个开源.高性能.采用Java开发.基于Luc ...
- OSChina 的全文搜索设计说明 —— 索引过程
http://www.oschina.net/question/12_71591 言: OSChina 的搜索做得并不好,很久之前一直想在细节方面进行改造,一直也没什么好的思路.但作为整体的结构或许对 ...
- 全文搜索之 Elasticsearch
概述 Elasticsearch (ES)是一个基于 Lucene 的开源搜索引擎,它不但稳定.可靠.快速,而且也具有良好的水平扩展能力,是专门为分布式环境设计的. 特性 安装方便:没有其他依赖,下载 ...
随机推荐
- 打FFT时中发现的卡常技巧
题目:洛谷P1919 A*B Problem 加强版 我的代码完全借鉴boshi,然而他380ms我880ms...于是我通过彻底的卡(chao)常(dai)数(ma)成功优化到了380ms,都是改了 ...
- 数学之美——HMM模型(一)介绍
一直想写点关于数学方面的blog,这对于数据挖掘分析,NLP处理等都有着比较重要的作用,之前在CSDN上想写点HMM方面的文章,一直没写成,最近几天终于抽点时间完成了HMM的文章,加以整理,遂有这个系 ...
- 牛客练习赛16 E - 求值
题目大意: 链接:https://www.nowcoder.com/acm/contest/84/E 给定n个数字a1, a2, ..., an. 定义f(l, r) = al | al+1| ... ...
- CSS------给字体添加边框时,边框大小无法改变问题
如图: 代码:(需要将display属性设置为inline-block,在设置height和line-height调整位置) //品牌点击 $(".li-brand").click ...
- Spring中数据绑定的两种方式(BeanWrapperImpl或者DataBinder)
import org.apache.shiro.authc.AuthenticationToken; import org.springframework.beans.*; import org.sp ...
- Java虚拟机工作原理简介
1. Java 文件执行过程 2. 运行数据区域 Runtime Data Areas:当运行一个JVM示例时,系统将分配给它一块内存区域(这块内存区域的大小可以设置的),这一内存区域由JVM自己来管 ...
- Android 前台服务
Android 前台服务 学习自 https://blog.csdn.net/guolin_blog/article/details/11952435#t3 前台服务漫谈 我们之前学习的Service ...
- android 对称加密,非对称加密 android 常见的加密
韩梦飞沙 韩亚飞 313134555@qq.com yue31313 han_meng_fei_sha android 常见的加密 ======== 不可逆加密:md5,sha1 可逆的加密中 ...
- bzoj1205: [HNOI2005]星际贸易
题目链接 bzoj1205: [HNOI2005]星际贸易 题解 辣鸡题面,毁我青春 辣鸡题面,毁我青 辣鸡题面,毁我 辣鸡题面,毁 第一问,背包dp 第二问 问题转化为在一个序列上经过好多点走到终点 ...
- 1038 一元三次方程求解 2001年NOIP全国联赛提高组
题目描述 Description 有形如:ax3+bx2+cx+d=0 这样的一个一元三次方程.给出该方程中各项的系数(a,b,c,d 均为实数),并约定该方程存在三个不同实根(根的范围在-100 ...