“文本三剑客(grep,sed,awk)”中的grep命令及正则表达式

Linux“文本三剑客”介绍

grep:过滤,即查找文本内容,常配合正则表达式一起使用

sed:修改文本内容

awk:对行进行取列;自带编程语言,格式是类java

(注:针对的都是文件内容)

 grep

都是对行进行处理,方便对日志内容进行过滤筛选

-v:取反

示例:grep -v 'root'

过滤出不含有root的内容

-m 数字n:多个匹配到的内容只取前n行

-n:显示匹配内容以及显示匹配的行号

-o:仅显示匹配到的字符串,不再输出其他内容

-A:after,表示显示匹配到的内容所在行及其后几行

-B:before,表示显示匹配到的内容所在行及其前几行

-C:显示匹配到的内容所在行及前后各几行

-e:实现逻辑或的关系(可以有多个)

-E:使用扩展正则表达式(或者使用egrep命令)

-f:过滤出两个文件相同的内容(以前一个文件为标的)

-r:递归目录下,所有包含过滤内容的文件以及匹配到的内容行,但是不处理软连接

-R:递归目录下,所有包含过滤内容的文件以及匹配到的内容行,可以处理软连接

通配符

通配符匹配的是文件名

*:匹配任意一个或多个字符

?:匹配任意一个字符

[ ]:可以是范围匹配,也可以是单个字符

基本正则表达式

.:元字符,匹配任意单个字符,可以是一个汉字

\:转义字符,加.表示指向单个一个.

\(\):即仅代表一个括号   

[ ]:匹配任意范围内的单个字符

[[:blank:]]:匹配空格或者制表符(tab键)

[ ]:只匹配空格
[:space:]:空格、制表符、换行符、回车、各种类型的空白都可以匹配
[:cntrl:]:匹配退格、删除

表示次数

*:表示匹配前面的字符任意次,包括0次,尽可能长地匹配

示例:

.*:匹配前面的字符任意次,但是不包括0次,也就是匹配所有

\?:匹配前面的字符出现0次或者1次(有且只有一次)

\+:匹配前面出现的字符,至少出现一次,也就是>=1

\{n\}:匹配前面出现的字符等于几次

\{m,n\}:匹配前面出现的字符最少是m次,最多是n次

\{,n\}:匹配前面的字符最多n次,没有也算

\{n,\}:匹配前面的字符组最少n次,只要连续出现n次,后面的都算

拓展示例:

位置锚定

^:行首锚定,以什么为开头
$:行尾锚定,以什么为结尾

示例:

^root$:匹配行模式

^$:空白行

^[[:space:]]*$:空白行

\ < 或者 \b:词首锚定,一般用于匹配单词模式的左侧
\ > 或者 \b:词尾锚定,一般用于匹配单词模式的右侧

\root\b或者 \<root\>:匹配整个单词

():分组

\ |:逻辑或

综合练习

1、高亮显示座机电话号码

2、高亮显示邮箱

3、高亮显示qq邮箱(qq号为0-9位并遵守qq邮箱格式)

4、高亮显示不同格式的数字

5、高亮显示/etc/inittab文件中以s开头并以d结尾的单词

6、高亮显示passwd文件中冒号及其两侧的字符

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值