正则表达式(regular expression, RE)
是一种字符模式,用于在查找过程中匹配指定的字符。
在大多数程序里,正则表达式都被置于两个正斜杠之间;例如/l[oO]ve/就是由正斜杠界定的正则表达式,
它将匹配被查找的行中任何位置出现的相同模式。在正则表达式中,元字符是最重要的概念。
基本正则表达式元字符
^ 行首定位符
$ 行尾定位符
. 匹配打个字符
* 匹配前导符0到多次
.* 任意多个字符
[ ] 匹配指定范围内的一个字符 [iL]ove
[ - ] 匹配指定范围内的一个字符,连续的范围内
[ ^ ] 匹配相反的字符
\ 转义
\< 词首定位符
\> 词尾定位符
( ) 匹配用括号括起来的字符,而不是替换
+ 匹配1~n个前导字符
? 匹配0~1个前导字符
a|b 匹配a或b
示例:
love 查love
/^love/ 查以love开头的
/love$/ 查出以love结尾的
/l.ve/ 查询 l开头 .匹配任意一个字符 ve结尾
重点
一、逐行处理
与grep一样,sed在文件中查找模式时也可以使用正则表达式(RE)和各种元字符。正则表达式是括在斜杠间的模式,用于查找和替换,以下是sed支持的元字符。
使用基本元字符集 ^, $, ., *, [], [^], < >,(),{}
使用扩展元字符集 ?, +, |, ( )
sed -r -i ' ' /etc/passwd
-r 支持正则表达式 -i 插入文件 修改写入文件
' ' 引号中间 前半部分写范围 后部分写操作命令[ ]
awk 编程
统计/etc/passwd中各种类型shell的数量
zhutong$
网友评论