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?Control,grep支持下面几个参数控制:
?
-e:PATTERN,支持使用-e参数,将PATTERN作为匹配的内容,PATTERN支持多个匹配内容 -f:FILE,匹配模式从内容读取,每行一个匹配模式,如果文件为空的话,会匹配不出结果 -i:这个最常见,表示匹配时不区分大小写 -w:表示单词匹配,必须是单个词匹配上才算 -x:这个表示是行匹配,必须是正行匹配上PATTERN才算 -y:意义和-i一致,不过已经废弃了。
?
下面看下General?Output?Control,这个是控制输出的结果,实际上就是控制输出的一些内容:
?