<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="zh">
	<id>https://arolstar52-zhtest.hf.space/index.php?action=history&amp;feed=atom&amp;title=Grep</id>
	<title>Grep - 版本历史</title>
	<link rel="self" type="application/atom+xml" href="https://arolstar52-zhtest.hf.space/index.php?action=history&amp;feed=atom&amp;title=Grep"/>
	<link rel="alternate" type="text/html" href="https://arolstar52-zhtest.hf.space/index.php?title=Grep&amp;action=history"/>
	<updated>2026-07-08T04:34:10Z</updated>
	<subtitle>在这个wiki上该页的修订历史</subtitle>
	<generator>MediaWiki 1.43.8</generator>
	<entry>
		<id>https://arolstar52-zhtest.hf.space/index.php?title=Grep&amp;diff=327271&amp;oldid=prev</id>
		<title>imported&gt;Danicastar：​/* growthexperiments-addimage-summary-summary: 1 */</title>
		<link rel="alternate" type="text/html" href="https://arolstar52-zhtest.hf.space/index.php?title=Grep&amp;diff=327271&amp;oldid=prev"/>
		<updated>2025-10-01T09:06:55Z</updated>

		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;growthexperiments-addimage-summary-summary: 1&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新页面&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{lowercase}}&lt;br /&gt;
&lt;br /&gt;
{{NoteTA |G1 = IT}}&lt;br /&gt;
[[File:Grep example.png|thumb|grep 查找 root 账户信息]]&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;grep&amp;#039;&amp;#039;&amp;#039;是一个最初用于[[Unix]]操作系统的[[命令行]]工具。在给出文件列表或[[标准输入]]后，grep会对匹配一个或多个[[正则表达式]]的文本进行搜索，并只输出匹配（或者不匹配）的行或文本。&lt;br /&gt;
&lt;br /&gt;
grep這個應用程式最早由[[肯·汤普逊]]寫成。grep原先是ed下的一個應用程式，名稱來自於g/re/p（globally search a regular expression and print，以正则表达式進行全域尋找以及列印）。在ed下，輸入g/re/p這個命令後，會將所有符合先定義樣式的字串，以行為單位列印出來。&lt;br /&gt;
&lt;br /&gt;
在1973年，Unix第四版中，grep首次出現在man頁面中。&lt;br /&gt;
&lt;br /&gt;
== 功能和用法 ==&lt;br /&gt;
这个程序的名称来自[[Unix]]文本编辑器[[ed (文本编辑器)|ed]]类似操作的命令：&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;vim&amp;quot;&amp;gt;g/re/p&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
这个命令搜索整个文件中匹配给定[[正则表达式]]的文本行，并显示出来。有很多不同的命令行用于改变grep的默认行为，包括显示出不匹配的文本行、查找或排除搜索的文件以及用不同的方式在输出中进行注释。同时也有很多经典Unix下grep的现代版本，这些版本都有着独特的功能。&lt;br /&gt;
&lt;br /&gt;
这里是一个常见的grep用法：&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;grep apple fruitlist.txt&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
在这个例子里，grep会返回“fruitlist.txt”中所有包含“apple”的文本行。要注意的是，grep不会返回匹配“Apple”（A字母大写）的文本行，因为grep默认情况下是大小写敏感的。像大多数Unix命令行一样，grep接受参数来改变或增加一些特别的功能。例如：&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;grep -i apple fruitlist.txt&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
这个命令会返回所有匹配“apple”、“Apple”、“apPLE”或其它混合大小写的拼写。&lt;br /&gt;
&lt;br /&gt;
在一些grep版本中，参数 -e 可以用于使用多个匹配样式来进行搜索。&lt;br /&gt;
&lt;br /&gt;
== 修改版 ==&lt;br /&gt;
{{rewrite|time=2015-12-14T02:37:57+00:00}}&lt;br /&gt;
&lt;br /&gt;
存在很多grep的修改版，例如[[agrep]]表示“近似的grep”&amp;#039;&amp;#039;approximate grep&amp;#039;&amp;#039;用于模糊字符串搜索，&amp;#039;&amp;#039;&amp;#039;fgrep&amp;#039;&amp;#039;&amp;#039;用于固定样式搜索&amp;#039;&amp;#039;fixed pattern searches&amp;#039;&amp;#039;，而&amp;#039;&amp;#039;&amp;#039;egrep&amp;#039;&amp;#039;&amp;#039;用于搜索更复杂的[[正则表达式]]语法。&lt;br /&gt;
&lt;br /&gt;
fgrep和egrep同&amp;#039;&amp;#039;&amp;#039;grep&amp;#039;&amp;#039;&amp;#039;基本上是一样的程序。因为通过调用不同的参数，grep可以实现大多数功能。[[Tcgrep]]是用[[Perl正则表达式]]语言重写的grep。所有grep的修改版都被应用到很多不同的[[操作系统]]中。&lt;br /&gt;
&lt;br /&gt;
有一些其它的命令行名称也包含了&amp;quot;grep&amp;quot;。如[[pgrep]]是用来显示名称匹配[[正则表达式]]的[[进程]]。&lt;br /&gt;
&lt;br /&gt;
在[[Perl]]中，grep是内置的功能，当提供[[正则表达式]]（或通用代码块）和一个列表时，会返回列表中匹配表达式的元素。在[[函數程式語言]]中，这个高阶函数常称为“过滤器”。&lt;br /&gt;
&lt;br /&gt;
[[微软]]的[[Windows]]平台提供了一个叫&amp;quot;findstr&amp;quot;的工具来执行grep的大多数功能。&lt;br /&gt;
&lt;br /&gt;
== 作为动词的用法 ==&lt;br /&gt;
{{rewrite|time=2015-12-14T02:37:57+00:00}}&lt;br /&gt;
由于“grep”很适合用英语发音，所以常被作为动词使用，意为“搜索”–这种搜索通常是指使用grep工具来对已知的一系列文件进行的搜索。和&amp;#039;&amp;#039;[[Google (动词)|google]]&amp;#039;&amp;#039;作为动词时的用法类似，grep可以直接接搜索对象做谓语，如“&amp;#039;&amp;#039;{{link-en|Kibo|Kibo}}在他的[[Usenet]]上搜索自己的名字（{{link-en|Kibo|Kibo}} grepped his [[Usenet]] spool for his name.）&amp;#039;&amp;#039;”。有时候会用&amp;#039;&amp;#039;visual grep&amp;#039;&amp;#039;来表示使用grep的形式来从文本中找出某些信息。&lt;br /&gt;
&lt;br /&gt;
2003年12月，“[[牛津英语辞典]]在线版”添加了&amp;quot;grep&amp;quot;词条，该词条可以作为名词或动词来使用。&lt;br /&gt;
&lt;br /&gt;
作为一个动词，grep一个常见的用法如下：&lt;br /&gt;
“&amp;#039;&amp;#039;你不能grep死了的树（You can&amp;#039;t grep dead trees&amp;#039;&amp;#039;）” &lt;br /&gt;
-由于纸是由死了的树做成的，所以这句话是说：你不能在传统的非数字媒体上使用grep如此简单强大的搜索功能。 &lt;br /&gt;
&lt;br /&gt;
单词“grep”也成了正则表达式的同义词。许多[[文档处理器]]现在也有了使用[[正则表达式]]搜索的功能，这些功能常被称为“grep工具”或“grep模式”并可以创建“grep样式”，同时也导致出现混淆，特别是在非Unix环境下。&lt;br /&gt;
&lt;br /&gt;
== egrep和fgrep ==&lt;br /&gt;
grep的早期修改版包括了egrep和fgrep。前者使用了[[肯·汤普逊|Ken Thompson]]最初的正则表达式实现后添加到UNIX的扩展[[正则表达式]]语法。后者则是简单地读取一系列固定字符串来对文件进行搜索。这些早期的修改版被加入到多数现代的grep实现，只需要使用简单的命令行参数就行了（如在[[GNU计划|GNU]]中，只要分别简单地加上&amp;lt;code&amp;gt;-E&amp;lt;/code&amp;gt;和&amp;lt;code&amp;gt;-F&amp;lt;/code&amp;gt;就可以了）。&lt;br /&gt;
&lt;br /&gt;
== 参考文献 ==&lt;br /&gt;
* {{cite book |title = Grep: Searching for a Pattern|author=Alain Magloire|publisher=Iuniverse Inc|year=August 2000|id=ISBN 0-595-10039-2 }}&lt;br /&gt;
* Andrew Hume. Grep wars: The strategic search initiative. In Peter Collinson, editor, &amp;#039;&amp;#039;Proceedings of the EUUG Spring 88 Conference&amp;#039;&amp;#039;, pages 237–245, Buntingford, UK, 1988. European UNIX User Group.&lt;br /&gt;
* {{cite web |url = http://www.catb.org/~esr/jargon/html/G/grep.html |title = grep |accessdate = 2006-06-29 |author = Raymond, Eric (editor) |authorlink = Eric S. Raymond |work = Jargon File |archive-date = 2006-06-17 |archive-url = https://web.archive.org/web/20060617052845/http://www.catb.org/~esr/jargon/html/G/grep.html |dead-url = no }}&lt;br /&gt;
&lt;br /&gt;
== 外部链接 ==&lt;br /&gt;
{{wikibookspar|How to search|grep}}&lt;br /&gt;
* [https://www.grepmaster.eu GNU grep (german)] {{Wayback|url=https://www.grepmaster.eu/ |date=20170608122318 }}&lt;br /&gt;
* {{en}}[http://www.gnu.org/software/grep/ GNU grep] {{Wayback|url=http://www.gnu.org/software/grep/ |date=20210128121702 }} - 这个版本的grep常附带在各种[[Linux发行版]]中&lt;br /&gt;
* {{en}}[https://web.archive.org/web/20071128092105/http://unixhelp.ed.ac.uk/CGI/man-cgi?grep GNU grep]&lt;br /&gt;
* {{en}}[http://www.linfo.org/grep.html The grep Command] {{Wayback|url=http://www.linfo.org/grep.html |date=20200404024811 }} - Linux信息项目（The Linux Information Project, LINFO）制作&lt;br /&gt;
* {{en}}[https://web.archive.org/web/20010421031139/http://www.unet.univie.ac.at/aix/cmds/aixcmds2/grep.htm AIX grep reference]&lt;br /&gt;
* {{en}}[http://ridiculousfish.com/blog/archives/2006/05/30/old-age-and-treachery/ &amp;quot;The Treacherous Optimization&amp;quot;] {{Wayback|url=http://ridiculousfish.com/blog/archives/2006/05/30/old-age-and-treachery/ |date=20070927184853 }} -（讨论在最佳和最糟情况下使用grep，如何进行权衡）&lt;br /&gt;
* {{en}}[http://stts.se/index.php?lang_id=en_uk&amp;amp;page=egrep Egrep for linguists] {{Wayback|url=http://stts.se/index.php?lang_id=en_uk&amp;amp;page=egrep |date=20071223161524 }} 对egrep的介绍&lt;br /&gt;
* {{en}}[http://tony.abou-assaleh.net/greps.html Tony Abou-Assaleh&amp;#039;s list of Greps] {{Wayback|url=http://tony.abou-assaleh.net/greps.html |date=20070929104347 }}&lt;br /&gt;
* {{en}}[https://web.archive.org/web/20080111034245/http://www.opbarnes.com/blog/Software/OPB/grep_for_windows.html Grep for Windows]&lt;br /&gt;
&lt;br /&gt;
== 参见 ==&lt;br /&gt;
{{Portal box|Linux|自由軟體}}&lt;br /&gt;
* [[Boyer-Moore字符串搜索算法]]&lt;br /&gt;
* [[Unix工具列表]]&lt;br /&gt;
* [[正则表达式]]&lt;br /&gt;
* [[Searchmonkey]]&lt;br /&gt;
&lt;br /&gt;
{{-}}&lt;br /&gt;
{{Unix命令}}&lt;br /&gt;
&lt;br /&gt;
{{Authority control}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Unix文字处理实用工具]]&lt;br /&gt;
[[Category:GNU计划软件]]&lt;br /&gt;
[[Category:Unix SUS2008实用工具]]&lt;br /&gt;
[[Category:标准Unix程序]]&lt;/div&gt;</summary>
		<author><name>imported&gt;Danicastar</name></author>
	</entry>
</feed>