2017-04-03 66 views
0

任何人都可以幫助我解決這個問題。使用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 
+0

你試過了什麼?它是如何失敗的? – choroba

+0

'grep -v'PATTERN。* PATTERN''是這樣的嗎? –

+0

我試過\ sed'/ /{n;//d}'pattern – Rio

回答

0

簡單SED方法:

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

^$ - 錨,指向字符串的開始和結束分別

^PATTERN\(.*PATTERN\)*$ - 將匹配開始的所有行並結束(由可選捕獲組\(.*PATTERN\)*提供)與PATTERN或續AINS PATTERN作爲單個字


使用grep的工具的替代:

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

-v--invert-match)的選項,倒置匹配的意義上,以選擇不匹配的行。

+0

那些只包含'PATTERN'而沒有其他東西的行呢? – choroba

+0

@choroba,好點,固定 – RomanPerekhrest

+0

非常感謝,它的作品。 – Rio