Linux系统运维之初识“三剑客”正则表达式

“三剑客”
正则表达式是为了护理大量的字符串及文本而定义的一套规则和方法
应用正则表达式的命令就是:grep(egrep)、sed、awk,俗称Linux三剑客

一、基本正则表达式(BRE)集合

字符作用
^用法"^any",表示匹配以any开头的所有行
$用法“$any”,表示匹配以any结尾的所有行
^$组合符,表示空行,解释就是以“^”结尾的行或者以“$”开头的行
.表示匹配任意一个且只有一个字符的行
\转义字符,让有特殊含义的字符不在特殊,表示为原来所代表的的字符
*匹配前一个字符(连续出现)0次或1次以上
.*组合符,匹配所有的的内容
.*$组合符,匹配以任意多个字符结尾的内容
^.*组合符,匹配以任意多个字符开头的内容
[]匹配“[]”集合内任意一个字符

二、扩展正则表达式

字符作用
+匹配前一个字符1次或者多次
[: /]+匹配括号内的“:”或“/”字符1次或者多次
匹配前一个字符0次或1次
()分组过滤,被括号起来的表示一个整体
\n引用前一个“()”括号的面的内容,例如(any)\n表示匹配anyany
a{n,m}匹配前一个字符(这里是a)最少n次,最多m次
a{n,}匹配前一个字符(这里是a)最少n次
a{n}匹配前一个字符正好n次
a{,m}匹配前一个字符(这里是a)最多m次
a{m}匹配前一个字符(这里是a)正好m次

三、三剑客命令

老三:grep —文本过滤命令

-E:相当于egrep,支持扩展正则表达式
-l: 只显示文件名
-o:只比配显示到的内容,显示grep的执行过程
-i:不区分大小写
-n:显示行号
-w:按单词进行比配
-A:显示找出的行以及接下来的行
-B:显示找出的行以及上面的行
-C:显示找出的行以及上下的行
-r:递归过滤,过滤目录下面的所有层
-R:与-r类似 只不过多了可以处理软链接

老二:sed—流编辑器

命令参数:

-n:取消默认输出,常与sed的内置命令p使用
-i:修改文件的内容,而不是输出到终端,如果不是使用“i”,则是只是打印到终端,不会修改文件本身的内容
-e:允许多次编辑

内置的命令:

a:全拼为append,表示追加文本,在指定行后面添加一行或者多行文本
d:全拼为delete,表示删除匹配行的文本
i:全拼为insert,表示插入文本在指定行前添加一行或者多行的文本
p:全拼为orint,表示打印匹配行的内容,通常与-n连用
s# aaa # yyy #g:用yyy替换文本中所有的aaa

使用实例:
1、利用正则加sed替换的功能获取ip
在这里插入图片描述
另外一种命令写法
在这里插入图片描述

老大:awk

-F:指定分隔符显示某几列-----例如:awk -F “:” 就是以“:”为分隔符(如有空格,空格也算是分隔符)
$n:表示显示第n列的东西文件
NR == n:表示显示第n行的文件,显示不连续的行的中间用“;”隔开,例如{NR== 1;NR== 5}
RS:(Record Separator)记录着每行的结束标记 读取到这个标记这一行结束 默认是回车
ORS: Output Record Separator 输出分隔符
函数:
gsub:substitute,替换
awk ‘{gsub(/oldboy/,“oldgirl”)}1’ xxx 相当于 sed ‘s/oldboy/oldgirl/g’ xxx
substr:相当于命令cut -c

awk中的for循环:

使用实例:
1、以空格为分隔符,显示第二列的内容
在这里插入图片描述
2、显示文件的第二行的内容

3、过滤出非r字符开头的行
在这里插入图片描述
4、取CentOS 7的ip地址
在这里插入图片描述

小博对三剑客的一些基础的认知,还在那学习当中,如有错误,还各位大佬请见谅哟!!!!

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值