[正则]排除字符组

  在正则表达式模式中,你也可以反转自读组的作用,你可以寻找组中没有的任意字符,而不是去寻找组中含有的字符。要这么做的话,只要在字符组的开头加个脱字符:

例如,data6的内容如下:

This is a test line
This is a different line.
This is a test of line
The cat is sleeping
That is a very nice hat.
at ten o'clock we'll go home
This test is at line two
hhi data6's content

匹配开头不是T开头的的

sed -n '/[^Ts]hi/p' data6

这时,所有带有hi并且开始的字符串为T和s的都滤除了。

输出:

hhi data6's content

注意,因为^也代表在首字母匹配,当把^符号移出[]内时,匹配的就是在开头是T和s开头并带有hi的字符了

sed -n '/^[Ts]hi/p' data6

输出:

This is a test line
This is a different line.
This is a test of line
This test is at line two

 

posted @ 2015-09-11 20:20  todaytoday  阅读(544)  评论(0编辑  收藏  举报