0
点赞
收藏
分享

微信扫一扫

linux 正则表达式详解

SPEIKE 2022-01-23 阅读 167

有关正则表达式容易混淆事项

  1. 本文讲的是Linux 系统中的正则表达式,即 Linux 正则表达式,应用正则表达式的命令就是 grep(egrep),sed,awk,注意,其他普通命令正常情况下无法使用正则表达式。
  2. 正则表达式与前文讲解的通配符,特殊字符有本质区别,正则在Linux中是通过三剑客(grep(egrep),sed,awk)命令在文件或数据流中过滤内容的。而通配符是大部分普通命令都支持的,它主要用来检查文件或目录的

环境变量修改

配置后操作时不会出现异常匹配情况

linux 正则表达式分类

字符作用
^尖角号,用法为^dalei,表示匹配以dalei 字符串开头的行
$美元符,用法为dalei$,表示匹配以dalei 字符串结尾的行
^$组合符,表示空行,逻辑解释就是以^结尾的行,或者以$开头的行
.点号,表示匹配任意一个且只有一个字符(但是不能匹配空行)
\转义字符,让有特殊含义的字符失去含义,变成普通符号字符,如\.就只表示小数点
*重复匹配前一个字符(连续出现)0次或1次以上。注意:当重复0次的时候,表示啥也没有(空),即匹配所有内容
.*组合符,表示匹配所有
^.*组合符,匹配以任意多个字符开头的内容
.*S组合符,以任意多个字符结尾的内容
[abc]匹配[]集合内任意一个字符a或b或c;[abc] 也可写成[a-c]
[^abc]匹配不包含^后的任意字符a或b或c,这里的^表示对[abc] 的取反,^不能使用!替代
  1. 中括号常用形式有:
  • [a-z] 表示匹配所有单个小写字母
  • [A-Z] 表示匹配所有单个大写字母
  • [a-zA-Z] 表示匹配所有单个大小写字母
  • [0-9]表示匹配所有单个数字
  • [a-zA-Z0-9] 表示匹配所有字母数字
字符作用
+匹配前一个字符 1 次或多次
[:/]+匹配括号内的:或/字符1次或多次
?匹配前一个字符0次或1次
|表示或者,即同时过滤多个字符串
()分组过滤被括起来的东西表示一个整体,另外()的内容可以被后面的\n 引用,n为数字,表示引用第几个括号的内容
\n引用前面()小括号里的内容,例如:(aa)\1,匹配aaaa
a{n,m}匹配前一个字符最少n次,最多m次
a{n,}匹配前一个字符最少n次
a{n}匹配前一个字符正好n次
a{,m}匹配前一个字符最多m次

sed命令 经常使用

获取主机IP地址
ifconfig eth0|sed -rn ‘2s#^.inet (.) net.*$#\1#gp’

举报

相关推荐

0 条评论