Linux正则表达式

3.1 正则表达式基础
    *:0个或多个在*字符之前的那个普通字符
    .:匹配任意字符
    ^:匹配行首,或后面字符的非(放在[]中时)
    $:匹配行尾
    []:匹配字符集合
    \:转义符,屏蔽一个元字符的特殊意义
    \<\>:精确匹配符号(\<the\>精确匹配the)
    \{n\}:匹配前面字符出现n次
    \{n,\}:匹配前面字符至少出现n次
    \{n,m\}:匹配前面字符出现n~m次
3.2 正则表达式的扩展
    ?:匹配0个或1个在其之前的那个普通字符
    +:匹配1个或多个在其之前的那个普通字符
    ():表示一个字符集合或用在expr中
    |:表示“或”,匹配一组可选的字符(re(a|e|o)d)匹配read,reed,reod,但更常使用re[aeo]d表示
    
3.3 通配(与正则表达式符号意义不同)
    *:任意位的任意字符
    ?:一个任意字符
    ^:取反
    []:匹配字符集合
    \{\}:限制匹配字符的个数
3.4、grep命令
3.4.1、grep命令的基本用法
    grep:支持正则表达式的一个多用途文本搜索工具
    grep [选项] [模式] [文件...]
    -c:只输出匹配行的数量
    -i:搜索时忽略大小写
    -h:查询多文件时不显示文件名
    -l:只列出符合匹配的文件名,而不列出具体的匹配行
    -n:列出所有的匹配行,并显示行号
    -s:不显示不存在或无匹配文本的错误信息
    -v:显示不包含匹配文本的所有行
    -w:匹配整词
    -x:匹配整行
    -r:递归搜索,不仅搜索当前工作目录,而且搜索子目录
    -q:禁止输出任何结果,以退出状态表示搜索是否成功
    -b:打印匹配行距文件头部的偏移量,以字节为单位
    -o:与-b选项结合使用,打印匹配的词距文件头部的偏移量,以字节为单位
    -E:支持扩展的正则表达式
    -F:不支持正则表达式,按照字符串的字面意思进行匹配
    
3.4.2、grep和正则表达式结合使用的一组例子
    grep ^- *.pem:匹配.pem为后缀文件中以-开头的行
    grep -c ^$ 00.pem:打印00.pem文件中空白行数量
    grep -c ^[^$] 00.pem:打印00.pem文件中非空白行数量
    grep ^/..../ 00.pem:匹配00.pem文件中以/开头,后面四个任意字符,再加一个/
    grep ^-*B 00.pem:匹配00.pem文件中以0个或多个-开头,后面紧跟B的字符串
    grep seu\.edu\.cn 00.pem:匹配seu.edu.cn
    grep '\-\{5\} 00.pem:匹配-符号重复5次的文本行
    
    [:upper:]:表示大写字母[A~Z]
    [:lower:]:表示小写字母[a~z]
    [:digit:]:表示阿拉伯数字[0~9]
    [:alnum:]:表示字母和阿拉伯数字
    [:space:]:表示空格或Tab键
    [:alpha:]:表示字母
    [:cntrl:]:表示Ctrl
    [:graph:]或[:print:]:表示可打印字符
    [:xdigit:]:表示十六进制数字

    grep ^[[:upper:]] 00.pm:搜索以大写字母开头的行
    grep ^[[:space:]] 00.pm:搜索以空格开头的行
    
    grep "\<the\>" re01:精确匹配the字符,等价与grep -w the re01
    grep -E "OU|seu" 00.pem:匹配含OU或seu字符的行

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值