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

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

本文介绍了sed 在模式之间打印第一个匹配结果的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

文件如下:

文件/home/user/

int yl_init(void);

int yl_init(void);

文件/home/user/

File /home/user/

int yl2_init(void);

int yl2_init(void);

我要使用 sed -n '/File/,/;/p' 文件但它表明

I want use sed -n '/File/,/;/p' filebut it shows that

文件/home/user/

int yl_init(void);

int yl_init(void);

文件/home/user/

File /home/user/

int yl2_init(void);

int yl2_init(void);

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

I only want to get the first match result like:

文件/home/user/

int yl_init(void);

int yl_init(void);

我只想要 sed .

推荐答案

这可能对你有用 (GNU sed);

This might work for you (GNU sed);

sed '/File/,/;/!d;/;/q' file

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

    • /File/,/;/!d delete all lines not between File and ;
    • /;/q quit on encountering a line containing ;
    • 这篇关于sed 在模式之间打印第一个匹配结果的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

08-21 05:46