shell 之正则表达式

正则表达式(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 编程

  1. 统计/etc/passwd中各种类型shell的数量


    15572192-0fca6d20b781e922.png
    zhutong$
15572192-56e4dbc9e40897b8.gif
苍蝇也是肉,一分也是爱。既然都读到了这儿,喜欢、关注留一个呗~() ~

猜你喜欢

转载自blog.csdn.net/weixin_34038293/article/details/87479828