绿吧 =G= 砂砾

格雷普/希腊/vi。

[来自qed/ed编辑器的成语g/重新/第页,哪里重新代表正则表达式,用于全局搜索用于正则表达式并打印包含匹配项的行到它,通过Unix公司 格雷普(1)]快速扫描文件或集合查找特定字符串或模式的文件(浏览时通过一大组文件,可以说是“grepping”周围)。延伸来说,就是按模式寻找东西。“格雷普系统备份时间表的公告栏,可以吗?" 另请参见vgrep公司

[据指称,来源于论文“通用正则表达式分析器”,但dmr证实g/re/p词源——ESR]

--行话文件4.3.1版,编辑。电子自旋共振,由自动节点雷斯克

一般来说,浏览列表时,只保留符合条件的项目。该词源于预计起飞时间编辑器,其中命令“g/re/p”,其中“re”是正则表达式,将全局(即“g”)搜索与您正在编辑的文件中的正则表达式匹配的行,并打印(即“p”)结果。

据推测,在编写ed之后的一段时间,程序grep诞生了。grep,它的一些版本几乎可以在每个UNIX系统安装时,搜索文件并打印与正则表达式匹配的行。grep计划体现了UNIX哲学:一个小型、简单、可重用的工具,用于处理纯文本.grep是灵活的:在您可以给它的许多选项中,您可以告诉它打印非匹配行(-v),打印匹配之前(-B)、之后(-A)或周围(-C(context))的一些行,计算匹配的数量(-C),忽略大小写(-i),打印行号(-n),以及递归搜索目录(-r)。grep非常适合用于-链接的命令。

示例:

  • grep-n foo somefile

    在某个文件中搜索模式“foo”,并打印找到的行以及行号。

  • grep“^.b.$”/usr/share/dict/words

    在字典中搜索带有中间字母“b”的三个字母的单词:这种东西非常适合填纵横字谜作弊。

  • 最后的|grep daf公司|

    列出我最近十次登录。

  • 找到/var/log/apache|grep“访问.*gz$”|参数代换 zcat公司|grep日本网络|awk公司“{打印$1}”|分类|uniq公司

    查找压缩的阿帕奇日志文件,获取内容,搜索访问日本网络,提取主机名,对结果进行排序并删除重复项。出于好奇,我用这个来获得日本航空公司已访问web服务器的代理服务器,因为它们是以披萨配料命名的。这里使用grep两次:首先选择文件名,然后从这些文件中选择行。

查看您当地的grep男人ual页面了解详细信息,或参见GNU(全球导航单元)文档的版本位于http://www.gnu.org/software/grep/grep.html

然而,自从grep发明以来,动词“grep”获得了更广泛的含义:搜索事物列表,只保留满足特定条件的项目。一些编程语言,特别是波尔,有一个grep功能,一个高阶函数从列表中选择值的。只有当将该值替换为表达式时,才会保留每个值。其他语言具有等效功能,例如方案选择红宝石数组#选择、和哈斯克尔滤波器

在Haskell中可以很好地将grep定义为

grep谓词列表=[item | item<-list;谓词item]

示例:

  • 波尔
    grep{$>3}qw(123456);#结果:qw(456)
  • 红宝石
    [1,2,3,4,5,6]。选择{x|x>3}#结果:[4,5,6]
  • 哈斯克尔
    过滤器(>3)[1,2,3,4,5,6]--结果:[4,5,6]
  • 方案
    (选择(lambda(x)(>x 3))'(1 2 3 4 5 6)); 结果:'(4 5 6)

下面是一个使用grep时容易犯的错误:

grep-r随便什么。>输出.file

对于那些不知道这个命令的人,下面是发生的事情:

因此,该命令的意思是“在该目录及其子目录中的所有文件中查找字符串“whatever”,并将找到的任何行写入output.file。”

你看到错误了吗?我也没有,第一次输入时,按回车键,然后等待。然后等待。然后等待。

最后,我按下ctrl-c,看了看输出文件,开始大笑。(我不确定我笑的是谁——我自己,还是写命令的人。)问题是,我告诉grep去看看每一个目录中的文件。我从没说过查看它正在创建的文件。因此,它在愉快地运行,读取自己的输出文件,在每一行上找到搜索字符串(当然),并在末尾追加新行。

这是一个典型的错误——没有记住计算机只是一个非常快白痴

如果你想知道如何避免这个问题,这里有两个解决方案。他们为什么工作的解释是作为练习离开

grep-r什么的。>/输出.file
grep-r任意。|cat>output.file

免责声明
我用了Cygwin公司在下面Windows NT(Windows NT).我不知道它在其他情况下会表现出相同的行为Unices公司,尽管我怀疑会。此外,在准备此写操作时,我确保可以重新创建此行为,并发现只有在子目录中至少有一次点击时才会发生此行为。有野心的人可以阅读源代码并解释为什么会发生这种情况。

登录登记在这里写点什么或联系作者。