您好,欢迎来到外链网!
当前位置:外链网 » 站长资讯 » 专业问答 » 文章详细 订阅RssFeed

Linux基本命令之grep(linux 基本命令)

来源:互联网 浏览:81次 时间:2023-04-08

1. Grep含义: 

grep是由 g/RE/p 拼起来的,其中g为global的意思,RE为regular expression的简写,p为print的意思;即grep的意思为“全局搜索正则表达式并打印该行”(grep名称起源于ex编辑器)。
 
grep的工作方式是这样的,它在一个或多个文件中搜索字符串模板。如果模板包括空格,则必须被引用,模板后的所有字符串被看作文件名。搜索的结果被送到屏幕,不影响原文件内容。
 
2. Grep家族:

Linux的基本命令

gLinux下高效实用的grep命令
rep家族包括grep、egrep和fgrep,其中egrep和fgrep是grep的简单变种。
 
egrep扩展了grep,支持更多的正则表达式元字符。
 
fgrep叫fixed grep或fast grep,它将所有的字符当作字面值,即正则表达式元字符不再是特殊字符。
 
备注:在Ubuntu13.04的GNU版本的grep上进行测试发现grep命令支持的正则表达式元字符与egrep同样。只是在使用时,grep将字符串中正则表达式的扩展字符解释为字符,而不是正则表达式的扩展元字符,除非经过转义符转义;而egrep则默认将字符串中包含的扩展字符解释为正则表达式的扩展元字符,正则表达式的元字符不需要经过转义,这才是egrep与grep真正的不同,而不是说支持的正则表达式的字符集不同。查找man命令,我们获得了确认:
 
  -E, --extended-regexp
              Interpret PATTERN as an extended regular expression (see below).

<哔哩哔哩专栏
p>例如:可以尝试下面的句子,就知道grep与egrep的不同了
 
grep -E '219|216' datafile
 
grep '219\|216' datafile
 
grep '219|216' datafile
 
3. Grep选项:
 
匹配控制:
 
-e#指定字符串做为查找文件内容的样式。 
 
-f#指定规则文件,其内容含有一个或多个规则样式
 
-i#忽略字符大小写的差别。
 
-v#显示不包含匹配文本的所有行。 
 
-w#只显示全字符合的列。
 
输出控制:
 
-c#只输出匹配行的计数。
 
-L#列出文件内容不符合指定的样式的文件名称。
 
-l#列出文件内容符合指定的样式的文件名称
 
-n#在显示符合样式的那一行之前,标示出该行的列数编号。 
 
-H#在显示符合样式的那一行之前,表示该行所属的文件名称。
 
-h #在显示符合样式的那一行之前,不标示该行所属的文件名称。

本文从互联网转载,来源地址:www.downzz.com/shell/17839.html,原作者保留一切权利,若侵权或引用不当,请联系茶猫云(cmy.cn)删除。【茶猫云,优质云服务器提供商】