目录
grep
通配符
正则表达式
grep
grep家族有三大成员分别为:
grep:支持使用基本正则表达式。
egrep:支持使用扩展正则表达式。
fgrep:不支持使用正则表达式,即所有的正则表达式中的元字符都将作为一般字符,仅仅
拥有其字面意义,不再拥有特殊意义
grep命令的基本语法如下:grep [options] pattern [file…]
| [options]选项 | 作用 | 
|   -n  |   显示行号  | 
|   -o  |   只显示匹配的内容  | 
|   -q  |   静默模式,没有任何输出,得用$?来判断执行成功没有,即有没有过滤到想要的内容  | 
|   -l  |   如果匹配成功,则只将文件名打印出来,失败则不打印,通常-rl一起用,grep -rl 'root' /etc  | 
|   -A  |   如果匹配成功,则将匹配行及其后n行一起打印出来  | 
|   -B  |   如果匹配成功,则将匹配行及其前n行一起打印出来  | 
|   -C  |   如果匹配成功,则将匹配行及其前后n行一起打印出来  | 
|   --color  |   高亮颜色显示匹配到的字符串  | 
|   -c  |   如果匹配成功,则将匹配到的行数打印出来  | 
|   -E  |   等于egrep,扩展  | 
|   -i  |   忽略大小写  | 
|   -v  |   取反,不匹配  | 
|   -w  |   匹配单词  | 
|   -r  |   递归搜索,不仅搜索当前目录,还要搜索其各级子目录  | 
|   -s  |   不显示关于不存在或者无法读取文件的错误信息  | 
通配符
| 通配符 | 作用 | 
|---|---|
| * | 匹配任意长度字符,可以是0个 | 
| ? | 匹配任意单个字符,必须是1个 | 
| [ ] | 匹配指定字符范围内的任意单个字符 | 
| [a-z] | 表示a-z,A-Y,但不包含Z | 
| [ A-Z ] | 表示A,b,B.....z,Z,不包含a | 
| [ a-Z ] | 包含所有大小写字母 | 
| [ :upper: ] | 所有大写字母 | 
| [ :lower: ] | 所有小写字母 | 
| [ :alpha: ] | 所有字母 | 
| [ :digit: ] | 所有数字 | 
| [ :blank: ] | 水平空白字符 | 
| [ :punct: ] | 标点符号 | 
| [ ^ ] | 匹配指定字符范围外的任意单个字符 | 
正则表达式
|   ^  |   在每行的开始进行匹配  | 
|   $  |   在每行的末尾进行匹配  | 
|   .  |   对任何单个字符进行匹配  | 
|   *  |   对前一项进行0次或多次重复匹配  | 
|   [str]  |   对str中的任何单个字符进行匹配  | 
|   [^str]  |   对任何不在str中的单个字符进行匹配  | 
|   [a-b]  |   对a到b之间的任何字符进行匹配  | 
|   \  |   忽略后面一个字符的特殊含义  | 
|   +  |   对前一项进行1次或多次重复匹配  | 
|   ?  |   对前一项进行0次或1次重复匹配  | 
|   {j}  |   对前一项进行j次重复匹配  | 
|   {j,}  |   对前一项进行j次或更多次重复匹配  | 
|   {,k}  |   对前一项最多进行k次重复匹配  | 
|   (s|t)  |   匹配s项或t项中的一项  | 
|   [[:alnum:]]  |   匹配任意一个字母或者数字,等价于[A-Za-z0-9]  | 
|   [[:alpha:]]  |   匹配任意一个字母,等价于[A-Za-z]  | 
|   [[:digit:]]  |   匹配任意一个数字,等价于0-9  | 
|   [[:lower:]]  |   匹配任意一个小写字母,等价于a-z  | 
|   [[:upper:]]  |   匹配任意一个大写字母,等价于A-Z  | 
|   [[:space:]]  |   匹配任意一个空白符,包括空格、制表符、换行符以及分页符  | 
|   [[:blank:]]  |   匹配空格和制表符  | 
|   [[:graph:]]  |   匹配任意一个看得见的可打印字符,不包括空白字符  | 
|   [[:print:]]  |   匹配任何一个可以打印的字符,包括空白字符,但是不包括控制字符、字符串结束符‘\0’、EOF文件结束符(-1)  | 
|   [[:cntrl:]]  |   匹配任何一个控制字符,即ASCII字符集中的前32个字符。例如换行符、 制表符等  | 
|   [[:punct:]]  |   匹配任何一个标点符号,例如“[]”、“{}”或者“,”等  | 
|   [[:xdigit:]]  |   匹配十六进制数字,即0-9、a-f以及A-F  | 
几个简单的使用例
^word 表示搜索以word开头的内容

word$ 表示搜索以word结尾的内容

. 代表且只能代表一个任意字符

* 重复0个或多个前面的字符

[] 匹配字符集合内任意一个字符,如[a-z]

[^abc]在中括号里表示非,不包含a或b或c

找出"fdisk -l“命令的结果中,取出硬盘路径
fdisk -l | grep Disk | grep /dev/nv | cut -d: -f 1 | cut -d " " -f2

找出ifconfig命令输出中的所有IP地址
ifconfig | egrep -o "[0-9]{1,3}\.[0-9]{1,3}\.[0-9] {1,3}\.[0-9]{1,3}"




















