2011-03-03 58 views
1

下面我有以下內容的文件:用grep左括號

文本


           瞎扯 「測試」
           集(「TEST_SUB 「)
           原點(354 504)
           本地化 「T」

我有使用VIM /文字\ n [\噸] 。\ n [\噸]並突出顯示了「文本」一詞和左括號。

但是當我使用的egrep '文字\ n [\噸] 。\ n [\噸]' 沒有輸出。只是想知道我怎麼能grep,直到右括號。

謝謝。

回答

0

如果您知道樣本將會有多長時間,您可以使用After標誌,使用-AN,其中N是您想要抓取的匹配之後的行數。

$grep -A7 "text" file.txt 
text 

(
     gab "test" 
     set("TEST_SUB") 
     origin(354 504) 
     localize "T" 
) 
+2

另外,您應該知道正則表達式無法處理嵌套圓括號。 – amccormack 2011-03-03 04:02:40

+0

謝謝。這樣可行。這是做到這一點的一種方式。 – user642318 2011-03-03 04:07:17

+0

但是,是否有一種方法可以將reg表達式作爲SET的條件可能因案例而異。 – user642318 2011-03-03 04:08:05

2

相反的egrep可以使用sed

sed -n '/^text/,/^($/p' yourfile將打印從text找到的所有行,直到在行的開頭找到(