1. <acronym id='moh30'><em id='moh30'></em><td id='moh30'><div id='moh30'></div></td></acronym><address id='moh30'><big id='moh30'><big id='moh30'></big><legend id='moh30'></legend></big></address>

      <span id='moh30'></span>
      <i id='moh30'></i>

    2. <tr id='moh30'><strong id='moh30'></strong><small id='moh30'></small><button id='moh30'></button><li id='moh30'><noscript id='moh30'><big id='moh30'></big><dt id='moh30'></dt></noscript></li></tr><ol id='moh30'><table id='moh30'><blockquote id='moh30'><tbody id='moh30'></tbody></blockquote></table></ol><u id='moh30'></u><kbd id='moh30'><kbd id='moh30'></kbd></kbd>
    3. <i id='moh30'><div id='moh30'><ins id='moh30'></ins></div></i><dl id='moh30'></dl>

      <ins id='moh30'></ins>

      1. <fieldset id='moh30'></fieldset>

        <code id='moh30'><strong id='moh30'></strong></code>

          CentOS系统里如何提高文本搜索效率?

          • 时间:
          • 浏览:5
          • 来源:124软件资讯网

            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