日期:2014-05-16  浏览次数:20753 次

Linux命令详解 - grep

Linux命令详解 - grep

按照我们以前学习Linux命令的套路,我们习惯于先man一下,看下系统怎么解释这个命令。详细的文档参考这里:http://www.gnu.org/software/grep/manual/grep.html

系统的解释:

grep, egrep, fgrep - print lines matching a pattern

这个解释还是比较明晰的,打印匹配给定模式的行数

这里先提一下,上面提到了egrep、fgrep,这两个grep命令是由于历史的原因还依然存在,egrep=grep -E,fgrep=grep -F实际上是已经废弃了的命令,不再推荐使用

?

grep命令及其强大,按照参数控制的不同,分为几个方面:

Matcher Selection:匹配模式选择
Matching Control:匹配控制
General Output Control:通用输出控制
Output Line Prefix Control:输出内容控制
Context Line Control:内容输出行控制
File and Directory Selection:文件、目录选择
Other Options:其它选项

我们按照grep的各个方面来学习一下grep命令。

?

先看下Matcher Selection,选择合适的匹配器,grep支持四种匹配匹配选择:

-E:Extended Regular Expression,扩展正则
-F:Fixed String:固定的String模式
-G:Basic Regular Pattern:基本模式,默认
-P:Perl regular expression:支持Perl匹配

?

?选择合适的匹配模式,就可以按照选择方式进行匹配了。

关于Matching?Controlgrep支持下面几个参数控制:

?

   -e:PATTERN,支持使用-e参数,将PATTERN作为匹配的内容,PATTERN支持多个匹配内容
   -f:FILE,匹配模式从内容读取,每行一个匹配模式,如果文件为空的话,会匹配不出结果
   -i:这个最常见,表示匹配时不区分大小写
   -w:表示单词匹配,必须是单个词匹配上才算
   -x:这个表示是行匹配,必须是正行匹配上PATTERN才算
   -y:意义和-i一致,不过已经废弃了。

?

下面看下General?Output?Control,这个是控制输出的结果,实际上就是控制输出的一些内容:

?