福州做网站的公,外贸网站怎样做推广,网络的推广方式有哪些,卸载ghost版wordpress本文由 极客范 - minejo 翻译自 Xmodulo。欢迎加入极客翻译小组#xff0c;同我们一道翻译与分享。转载请参见文章末尾处的要求。对于系统管理员或程序员来说#xff0c;当需要在复杂配置的目录中或者在大型源码树中搜寻特定的文本或模式时#xff0c;grep类型的工具大概是…本文由 极客范 - minejo 翻译自 Xmodulo。欢迎加入极客翻译小组同我们一道翻译与分享。转载请参见文章末尾处的要求。对于系统管理员或程序员来说当需要在复杂配置的目录中或者在大型源码树中搜寻特定的文本或模式时grep类型的工具大概是最受欢迎的。
如果grep是你最喜欢的工具之一那么你可能会更喜欢ack。ack是一个基于Perl的类似于grep的命令行工具但是搜索速度更快能力比grep更强。尤其是当你是程序员时我强烈推荐你使用ack来取代grep。
ack的用法非常适用与代码搜索因此程序员可以在源码树中进行复杂的查询而只需要更少的按键。
ack的特性
ack的一些非常强大的特性
默认搜索当前工作目录默认递归搜索子目录忽略元数据目录比如.svn,.git,CSV等目录忽略二进制文件比如pdfimagecoredumps)和备份文件比如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/ack1 2 3 4 $ 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 eat1 2 $ ack -w eat 2.搜索有特殊字符的字符串’$path.’,所有的元字符比如’$,’.)需要在字面上被匹配: $ ack -Q $path. /etc1 2 $ ack -Q $path. /etc 3.除了dowloads目录在所有目录搜索”about”单词: $ ack about --ignore-dirdownloads1 2 $ ack about --ignore-dirdownloads 4.只搜索包含’protected’单词的PHP文件然后通过文件名把搜索结果整合在一起打印每个文件对应的搜索结果: $ ack --php --group protected1 2 $ ack --php --group protected 5.获取包含’CFLAG’关键字的Makefile的文件名。文件名为*.mk,makefile,Makefile,GNUmakefile的都在考虑范围内: $ ack --make -l CFLAG1 2 $ ack --make -l CFLAG 6.显示整个日志文件时高亮匹配到的字符串: $ tail -f /var/log/syslog | ack --passthru 192.168.1.101 2 $ tail -f /var/log/syslog | ack --passthru 192.168.1.10 7.要换取ack支持的文件过滤类型运行 $ ack --help-type1 2 $ ack --help-type 原文链接 Xmodulo 翻译
极客范 - minejo译文链接
http://www.geekfan.net/6881/[
转载请保留原文出处、译者和译文链接。]