本文介绍了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 betweenFile
and;
/;/q
quit on encountering a line containing;
这篇关于sed 在模式之间打印第一个匹配结果的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!