CentOS系统里如何提高文本搜索效率?
对于系统管理员或程序员来说,当需要在复杂配置的目录中或者在大型源码树中搜寻特定的文本或模式时,grep类型的工具大概是最受欢迎的。
如果grep是你最喜欢的工具之一,那么你可能会更喜欢ack。ack是一个基于Perl的类似于grep的命令行工具,但是搜索速度更快,能力比grep更强。尤其是当你是程序员时,我强烈推荐你使用ack来取代grep。
ack的用法非常适用与代码搜索,因此程序员可以在源码树中进行复杂的查询,而只需要更少的按键。
ack的特性
ack的一些非常强大的特性:
默认搜索当前工作目录
默认递归搜索子目录
忽略元数据目录,比如.svn,.git,CSV等目录
忽略二进制文件(比如pdf,image,coredumps)和备份文件(比如foo~,*.swp)
在搜索结果中打印行号,有助于找到目标代码
能搜索特定文件类型(比如Perl,C++,Makefile),该文件类型可以有多种文件后缀
高亮搜索结果
支持Perl的高级正则表达式,比grep所使用GNU正则表达式更有表现力。
相比于搜索速度,ack总体上比grep更快。ack的速度只要表现在它的内置的文件类型过滤器。在搜索过程中,ack维持着认可的文件类型的列表,同时跳过未知或不必要的文件类型。它同样避免检查多余的元数据目录。
在Linux上安装ack
尽管在大多数Linux发行版中是ack是标准包,可轻易获得(比如在基于debian的系统中,是ack-grep包,而在基于Redhat的系统中则是ack包),但是与发行版捆绑的ack版本仍然是1.x,而ack2.0已经发布,而且拥有更多特性。
因此我准备在官方网站下载,然后安装ack。
方便的是,ack在官网可可作为一个单独的Perl脚本获得,其中整合了所有需要依赖的模块。因此,你不需要额外安装Perl模块来运行这脚本。
为了在你的Linux系统中安装ack,去官网下载最新版本的ack。在写本文时,最新的版本是2.12
$ wget http://beyondgrep.com/ack-2.12-single-file $ sudo mv ack-2.12-single-file /usr/local/bin/ack $ sudo chmod 0755 /usr/local/bin/ack
需要注意的是,在基于Debian的系统中,有一个独立的包也叫ack(汉码转换器)。所以如果你碰巧有使用那个包,那么你就必须重命名ack来避免命名冲突了。
ack的使用案例
1.在当前目录递归搜索单词”eat”,不匹配类似于”feature”或”eating”的字符串:
$ ack -w eat
2.搜索有特殊字符的字符串’$path=.’,所有的元字符(比如’$',’.')需要在字面上被匹配:
$ ack -Q '$path=.' /etc
3.除了dowloads目录,在所有目录搜索”about”单词:
$ ack about --ignore-dir=downloads
4.只搜索包含’protected’单词的PHP文件,然后通过文件名把搜索结果整合在一起,打印每个文件对应的搜索结果:
$ ack --php --group protected
5.获取包含’CFLAG’关键字的Makefile的文件名。文件名为*.mk,makefile,Makefile,GNUmakefile的都在考虑范围内:
$ ack --make -l CFLAG
6.显示整个日志文件时高亮匹配到的字符串:
$ tail -f /var/log/syslog | ack --passthru 192.168.1.10
7.要换取ack支持的文件过滤类型,运行:
$ ack --help-type
相关文章
- 今天小编就为大家带来Centos文件搜索命令的讲解;希望对大家的学习会有帮助;有需要的朋友可以过来看看2016-12-09
Win10搜索不到wifi怎么办?Win10搜索不到wifi的解决方法
Win10搜索不到wifi怎么办?最近有朋友遇到这个问题,下面小编就给大家带来Win10搜索不到wifi的解决方法,一起来看看吧2016-12-06- 如果电脑存放的文件太多,那么找不到某文件是非常常见的事情,但是不少玩家发现Win7系统搜索功能失效了,小编带来三步修改注册表的方法,大家参考一下吧2016-12-01
Win10 UWP版《芒果TV》v3.13更新:新增全网搜索 记忆播放
在微软秋季Win10/Surface Studio新品发布会热潮之后,近期《芒果TV》Windows10 UWP版迅速更新v3.1.3版,优化应用启动速度,支持会员卡券兑换,新增全网搜索、记忆播放、消2016-11-08- 说到windows10正式版系统,我们马上就会想到其自带的语音助手Cortana小娜。最近,一些用户反馈自己想要给小娜搜索框添加放大镜、箭头图标,却不知道该如何操作。下面小编就2016-10-31
- win10预览版14951怎么禁用/恢复手动搜索更新?wiin10系统中可以设置禁止使用手动搜索更新,下面我们就来看看禁止和恢复手动搜索更新的方法,需要的朋友可以参考下2016-10-26
- 在深度技术Ghost Win10系统桌面版中,Cortana小娜绝对是非常新颖的功能,以至于让苹果MacOS都眼馋,把Siri也请了进去。下面小编就为大家详细介绍win10的Cortana搜索栏显示你爱2016-10-24
win7系统连接投影仪屏幕显示正在搜索信号源的解决方法图文教程
投影仪设备可以直接把电脑内容投影放大到屏幕上,是现在办公室会议中必备办公软件,但最近有windows7系统用户反映,电脑上连接投影仪的时候遇到了问题,屏幕中显示“正在搜2016-10-17Win8.1系统搜索功能不能用怎么办?Win8.1搜索功能不能用的解决方法
最近有网友遇到win8.1搜索功能不见了的情况,这是怎么回事呢?下面小编就给大家带来Win8.1搜索功能不能用的解决方法,一起来看看吧2016-10-17- Win10 RS2 14931禁用手动扫描Windows更新功能可以帮助用户更好的管理域内设备,如何使用?下面小编就给大家带来详细的教程,一起来看看吧2016-09-29
最新评论