sed之间打印模式的第一个匹配结果

时间:2013-01-16 03:45:25

标签: sed

文件如:

  

文件/ home / user /

     

int yl_init(void);

     

文件/ home / user /

     

int yl2_init(void);

我想要使用sed -n '/File/,/;/p'文件 但它显示了

  

文件/ home / user /

     

int yl_init(void);

     

文件/ home / user /

     

int yl2_init(void);

我只想获得第一个匹配结果,如:

  

文件/ home / user /

     

int yl_init(void);

我只想要sed。

2 个答案:

答案 0 :(得分:3)

这可能适合你(GNU sed);

sed '/File/,/;/!d;/;/q' file
  • /File/,/;/!d删除File;
  • 之间的所有行
  • /;/q在遇到包含;
  • 的行时退出

答案 1 :(得分:2)

您可以使用q命令在第二个模式匹配时使sed退出:

sed -n '/File/,$p;/;/q'