2014-08-29 85 views
0

是否有可能創建用於SED使用正則表達式,以匹配一切(包括):正則表達式匹配直到'{'字符?

main(argc, argv) 

達到(但不包括)下一個「{」字符?

我不知道如何在多行中匹配。

預期輸入:

blah 

main(argc, argv) 
a 
b 
c 
{ 

預計比賽:

main(argc, argv) 
a 
b 
c 

謝謝!

+2

我沒有看到你輸入的任何''{字符。如果您發佈了輸入和期望的輸出,那會更好。 – 2014-08-29 10:52:35

+0

謝謝,已經做到了! – James 2014-08-29 10:56:53

+0

通常,我會使用'[^ ​​{] *'。不確定sed。 – 2014-08-29 11:00:45

回答

0

試試這個:

sed -n '/main(argc, argv)/,/{/ p' 

在我的系統(Mac OS X中),它這樣做:

$ sed -n '/main(argc, argv)/,/{/ p' t.txt 
main(argc, argv) 
a 
b 
c 
<any other input, not including {> 
+0

我不確定這是幹什麼的,但它似乎只是清空輸入文件。 – James 2014-08-29 11:06:50

+0

你是什麼意思?我現在將添加一個完整的腳本來運行命令。 – 2014-08-29 11:10:55

+0

啊哈!幾乎工作,謝謝..但它匹配{字符。 – James 2014-08-29 11:20:16