目录
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}"文章来源:https://www.toymoban.com/news/detail-578977.html
文章来源地址https://www.toymoban.com/news/detail-578977.html
到了这里,关于Shell通配符和正则表达式的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!