2014-08-29 83 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