好文: 為什麼 GNU grep 這麼快

标签: News-Technology grep linux | 发表时间:2011-10-25 17:18 | 作者:Tsung chuang
出处:http://blog.longwin.com.tw

Linux shell 常常會用到 grep, 為何 grep 可以那麼快的找到我們要的資料?

這篇文章有清楚的說明: 為什麼 GNU grep 這麼快 (下述摘錄自此文), 詳細討論原文: why GNU grep is fast

為什麼 GNU grep 這麼快? GNU grep 有使用下述技巧:

  • 技巧1: GNU grep之所以快是因為它並不會去“檢查”輸入中的每一個位元組
  • 技巧2: GNU grep之所以快是因為它只對每個它要檢查的位元組執行非常少的操作
  • GNU grep使用了非常著名的 Boyer-Moore 演算法,它會從目標字元串的最後一個字元開始查找,並且配合一個查找表,它可以在發現一個不匹配字元之後,計算出應該跳過後續輸入中的多少個字元並繼續查找

 

相关 [gnu grep] 推荐:

好文: 為什麼 GNU grep 這麼快

- chuang - Tsung's Blog
Linux shell 常常會用到 grep, 為何 grep 可以那麼快的找到我們要的資料?. 這篇文章有清楚的說明: 為什麼 GNU grep 這麼快 (下述摘錄自此文), 詳細討論原文: why GNU grep is fast. 為什麼 GNU grep 這麼快. GNU grep 有使用下述技巧:.

Linux grep命令用法

- - 酷勤网-挖经验 [expanded by feedex.net]
grep — print lines matching a pattern (将符合样式的该行列出). ◎语法: grep [options]. grep用以在file内文中比对相对应的部分,或是当没有指定档案时,. 在预设的情况下,grep会将符合样式的那一行列出. 此外,还有两个程序是grep的变化型,egrep及fgrep.

GNU/Linux 中到底有多 GNU ?

- walker - LinuxTOY
按照 Free Software Foundation 的说法,Linux 的全称应该是 GNU/Linux. 那么一个常见的 Linux 发行版究竟有多 GNU 呢. Pedro Côrte-Real 在他的博客中发表了一份以代码行为单位对于 Ubuntu 11.04 中 main 仓库包含软件 GNU 比例(仅限由 Ubuntu 打包的部分,不包括从 Debian 继承的)的分析,参见下图:.

GNU Mediagoblin Project启动

- aviot - Solidot
自由的图片共享项目GNU Mediagoblin于本月初正式启动,旨在解决现有图片共享服务如Flickr、DeviantArt、Picasa和Facebook没有很好解决的问题:诸如隐私、数据所有权,可靠性和软件自由. GNU Mediagoblin一开始是针对照片/艺术图,未来将扩大到所有媒体. GNU Mediagoblin的设想很简单:它没有采用需要注册的中心化服务,而是允许任何人搭建一个实例,然后在朋友之间共享媒体.

linux命令终极系列(grep)

- JingSQ - C++博客-首页原创精华区
        说明:从test.txt中搜寻有aa样式的行,并显示该行的后1行.         说明:从test.txt中搜寻有aa样式的行,并显示该行的前1行.         说明:列出file中除包含panda样式的行外并列出其上下2行.     (4) -a或--test.        说明:如果不加-a,找到后,一般会显示“匹配到二进制文件 tp_smapi-0.40.tgz”,找不到.

生日快乐,GNU!(1983~)

- 欧剃 - 笨兔兔
1983年的9月27日,Richard Stallman 公开发布惊天动地的《GNU宣言》. RMS 的目标,在于创建一套完全自由的操作系统. 自1983《GNU 宣言》发布以来,取得了巨大成绩:. Linux 目前运行在世界82%左右的超级计算机平台上,支持耗费$100亿的亚原子大型强子对撞机研究.

GNU黑客大会2011

- Tairan Wang - Solidot
Shawn the R0ck 写道 "2011年8月25日至28日,GNU各大社区的黑客在巴黎召开了GNU的年度会议GHM(GNU Hackers Meeting) 2011,来自emacs、gcc、gdb、GNU/Hurd、debian、GNU R等重要GNU自由软件项目的开发者都参与了此次会议.

了解 GNU GPL/GNU LGPL/BSD/MIT/Apache协议

- aoao - IFLONELY
越来越多的开发者与设计者希望将自己的产品开源,以便其他人可以在他们的代码基础上做更多事,开源社区也因此充满生机. 在我们所能想到的应用领域,都有开源软件存在(象 WordPress,Drupal 这些开源CMS). 然而很多人对开源许可并不了解,本文介绍开源领域常用的几种许可协议以及它们之间的区别.

开始加入gnu toolchain的开发

- netcasper - HelloGcc Working Group
作者: qiyao@hellogcc. 很多刚刚加入gnu toolchain开发的工程师,都会被各种各样的规定,缩写还有交流方式搞得晕头转向. 本文就是为了让刚刚进入gnu toolchain的开发的工程师简单介绍一下在这个圈子里边工作的一些特别之处. checkout就不用说了,绝大多数人都知道怎样check out代码.

带孩子到 GNU/Linux 世界

- - LinuxTOY
最近,读罢 John Goerzen 所撰写的 Children & Computing 系列文章,不禁让我唏嘘不已. John Goerzen 给我的感觉是一个相当有心且充满 Geek 味的父亲. 且看作者是如何将自己的小孩带到 GNU/Linux 世界的. 在 Jacob(作者的第一个小孩)3 岁半时,作者有意识的将 Linux 命令行介绍给他.