sed -n -r ; -n表示quiet, 只输出匹配结果; -r表示使用正则表达式
re:
* 匹配任意
? 匹配0,1
+ 匹配>=1
[]: 匹配其中任意字符;中括号内的连续字符可以使用-, 0-9表示0,1,2,3,4,5,6,7,8,9
[^]: 匹配非中括号中的任意字符
echo "def" | sed -n -r "/d[eE]f/p" 输出:def
echo "def" | sed -n -r "/d[a]f/p" 输出:无
/b: 匹配单词边界
echo "defgh" | sed -n -r "//bdef/p" 输出:defgh
echo "defgh" | sed -n -r "/def/b/p" 输出:无
/B: 匹配单词内部, 用法基本同上
^,$分别匹配行首与行尾
字符转义:
/d 数字 /D 数字外的字符
/w 单词字符 /W 非单词字符.(包括数字。。sed试过)
/s 空白 /S 非空白
. 匹配出/n之外的任意字符
{n,[m]} 匹配n次到m次;
/de{1,3}f/ 将会匹配def,deef,deeef
| 或, /def|ghi/ 将匹配def 或者 ghi
() 分组。 通过/n引用第n组
echo "abc.com" | sed -n -r "/(/w+).(/w+)/p" 其中有两个组, 第一个组匹配abc,第2个组匹配com
模式匹配选项
g: 匹配所有可能模式
i: 忽略大小写
m: 将串视为多行
s: 将串视为单行
x: 忽略所有空白
肯定否定匹配
/abc(?=string)/匹配abc后为string的模式, 返回的是abc
/abc(?!string)/ 匹配abc后不是string的模式, 返回的是abc
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。