shell脚本——正则表达式与文本三剑客Grep、AWK以及Sed

本文详细介绍了正则表达式的基本概念、元字符、表示次数以及位置锚定,同时讲解了扩展正则表达式。接着深入探讨了grep命令的使用,包括各种选项和匹配模式。然后讲解了awk工具,包括其基础用法、内置变量以及面试题示例。最后,文章阐述了sed的工作原理,并列举了常用命令和选项,以及搜索替代功能。
摘要由CSDN通过智能技术生成

一、正则表达式

1.1 正则表达式的含义

由一类特殊字符及文本字符所编写的模式,其中有些字符(元字符)不表示字符字面意义,而表示控制或通配的功能,类似于增强版的通配符功能,但与通配符不同,通配符功能是用来处理文件名,而正则表达式是处理文本内容中字符。

1.2 正则表达式的分类

通配符匹配文件(而且是已存在的文件)

  • 基本正则表达式

  • 扩展正则表达式

1.3 元字符

 . :代表任意字符

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

[^]  :匹配指定范围外的任意单个字符( 取反)

常见元字符:

[:alnum:] 字母和数字
[:alpha:] 代表任何英文大小写字符,亦即 A-Z, a-z
[:lower:] 小写字母,示例:[[:lower:]],相当于[a-z]
[:upper:] 大写字母
[:blank:] 空白字符(空格和制表符)
[:space:] 包括空格、制表符(水平和垂直)、换行符、回车符等各种类型的空白,比[:blank:]包含的范围广
[:cntrl:] 不可打印的控制字符(退格、删除、警铃...)
[:digit:] 十进制数字
[:xdigit:]十六进制数字
[:graph:] 可打印的非空白字符
[:print:] 可打印字符
[:punct:] 标点符号
\w #匹配单词构成部分,等价于[_[:alnum:]]
\W #匹配非单词构成部分,等价于[^_[:alnum:]]
\S     #匹配任何非空白字符。等价于 [^ \f\n\r\t\v]。
\s     #匹配任何空白字符,包括空格、制表符、换页符等等。等价于 [ \f\n\r\t\v]。注意
Unicode 正则表达式会匹配全角空格符

1.4 表示次数

*    #匹配前面的字符任意次,包括0次,贪婪模式:尽可能长的匹配
.*    #任意长度的任意字符,不包括0次
\?   #匹配其前面的字符出现0次或1次,即:可有可无
\+    #匹配其前面的字符出现最少1次,即:肯定有且 >=1 次
\{n\}    #匹配前面的字符n次
\{m,n\}   #匹配前面的字符至少m次,至多n次
\{,n\}     #匹配前面的字符至多n次,<=n
\{n,\}     #匹配前面的字符至少n次

提取网卡信息:IP地址、子网掩码及网关

1.5 位置锚定

^ 开头

$ 结尾

\b 字符串的开头 \ <

\b 字符串的结尾 \ >

1.6 分组或

分组:( ) 将多个字符捆绑在一起,当作一个整体处理

或者:\ |

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值