使用sed删除图案线条

时间:2017-04-03 12:33:25

标签: sed

任何人都可以帮我解决这个问题。

如果PATTERN在同一行开始和结束。 删除包含PATTERN

的行
joey people PATTERN  we just had
PATTERN a lot of fun PATTERN
at my wedding
We will PATTERN
have more
PATTERN fun tomorrow PATTERN
all are welcome.

执行后,上面的行应该是这样的。

joey people PATTERN  we just had
at my wedding
We will PATTERN
have more
all are welcome

1 个答案:

答案 0 :(得分:0)

简单 sed 方法:

sed '/^PATTERN\(.*PATTERN\)*$/d' file

^$ - 锚点,分别指向字符串的开头和结尾

^PATTERN\(.*PATTERN\)*$ - 将所有开头和结尾的行(由可选捕获论坛\(.*PATTERN\)*提供)与PATTERN或包含PATTERN作为单个字匹配

使用 grep 工具的替代方法:

grep -v '^PATTERN\(.*PATTERN\)*$' file

-v--invert-match)选项,反转匹配感,选择不匹配的行。