grep命令详解
grep命令是*nix上匹配行的一个工具,可以用来搜索匹配的行,对于查找指定字符和字符行非常好用,grep非常有效grep家族包含grep,egrep,fgrep,
grep使用的是基本元字符,egrep使用的是扩展正则表达式,,可以使用grep -E来使用egrep,使用grep -F来使用fgrep,或者直接使用egrep,fgrep,一般
来说grep,egrep比较常用,较少使用fgrep.下面来主要介绍grep和egrep.
语法格式为 grep [OPTIONS] PATTERN [FILE...] grep [OPTIONS] [-e PATTERN | -f FILE] [FILE...]
grep的常用选型
-i: 不区分大小写
-n: 匹配行显示行号
-v: 反向匹配,显示不匹配的行
-w:匹配字母和数字
-c:显示匹配的行数
--color:用颜色显示匹配到的字符
-o:仅显示匹配的字符
-A:显示匹配的后几行
-B:显示匹配的前几行
-C:显示匹配的上下几行
基本元字符
^ :锚定行首
$ :锚定行尾
. :零个或一个字符
* :一个字符
[]: 里面任一字符
[^]:非^后的字符
\(..\) 后向引用
\< :锚定字符
x\{m\} 字符x出现m次
x\{m,\} 字符m大于m次
x\{m,n\} 字符出现大于等于m次小于n次
\w :匹配单词
\W
\b 匹配单词词首或词尾
扩展元字符
? :0个或1个前面字符
+ :1个或多个前面字符
() :一个表达式,可以用来后向引用
| :左右两边或者,表示选择
POSIX字符类
- [:alnum:]
-
文字数字字符
[:alpha:] -
飞数字字符字符
[:digit:] -
数字字符
[:graph:] -
非空字符(非空格、控制字符)
[:lower:] -
小写字符
[:cntrl:] -
控制字符
[:print:] -
非空字符(包括空格)
[:punct:] -
标点符号
[:space:] -
所有空白字符(新行,空格,制表符)
[:upper:] -
大写字符
[:xdigit:] -
十六进制字符
实例