标准正则表达式
^ 匹配行的开始。
$ 匹配行的结尾
. 匹配单个字符(除行尾)
[] 匹配字符集
$ echo -e "Call
Tall
Ball" | sed -n '/[CT]all/ p'
Call
Tall
[^] 排除字符集
$ echo -e "Call
Tall
Ball" | sed -n '/[^CT]all/ p'
Ball
[-]字符范围。
$ echo -e "Call Tall Ball" | sed -n '/[C-Z]all/ p'
Call
Tall
? ,+ ,*
分别对应0次到1次,一次到多次,0次到多次匹配。
{n} ,{n,} ,{m, n}
精确匹配N次,至少匹配N次,匹配M-N次
|
或操作。
echo -e "str1 str2 str3 str4" | sed -n '/str(1|3)/ p'
str1
str3
POSIX兼容的正则
主要包含
POSIX定义的character class只能在中括号内使用。例如,[[:upper:]ab]匹配大写字母字符和”a”,”b”。
[:word:]是附加的非POSIX的character class,[:word:]表示[:alnum:]和下划线。
元字符
s 匹配单个空白内容
$ echo -e "Line 1
Line2" | sed -n '/Lines/ p'
Line 1
S 匹配单个非空白内容。
w 单个单词、
W 非单词。
参考http://blog.jobbole.com/109088/http://blog.jobbole.com/109088/
https://www.cnblogs.com/lovers/p/POSIXREGEX.html