首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用awk,sed打印两个特定单词之间的文本?

如何使用awk,sed打印两个特定单词之间的文本?
EN

Stack Overflow用户
提问于 2018-05-29 10:38:05
回答 3查看 1.4K关注 0票数 0

如何使用awk,sed打印两个特定单词之间的文本?

代码语言:javascript
复制
$ ofed_info | awk '/MLNX_OFED_LINUX/{print}'
MLNX_OFED_LINUX-4.1-1.0.2.0 (OFED-4.1-1.0.2):
$

所需产出:-

代码语言:javascript
复制
4.1-1.0.2.0
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2018-05-29 10:39:42

在这里,遵循awk可能会对您有所帮助。(考虑到您对awk的输入将与仅显示的示例相同)

代码语言:javascript
复制
your_command | awk '{sub(/[^-]*/,"");sub(/ .*/,"");sub(/-/,"");print}' 

解决方案2:现在sed解决方案。

代码语言:javascript
复制
your_command | sed 's/\([^-]*\)-\([^ ]*\).*/\2/'

解决方案3:使用awkmatch实用程序的

代码语言:javascript
复制
your_command | awk 'match($0,/[0-9]+\.[0-9]+\-[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+/){print substr($0,RSTART,RLENGTH)}'
票数 0
EN

Stack Overflow用户

发布于 2018-05-29 10:42:39

您可以使用此sed

代码语言:javascript
复制
echo 'MLNX_OFED_LINUX-4.1-1.0.2.0 (OFED-4.1-1.0.2):' |
sed -E 's/^[^-]*-| .*//g'

代码语言:javascript
复制
4.1-1.0.2.0

这个sed命令从开始到第一个连字符或以空格开始的文本开始删除文本。

票数 0
EN

Stack Overflow用户

发布于 2018-05-29 10:46:27

试试这个:

代码语言:javascript
复制
ofed_info | sed -n 's/^MLNX_OFED_LINUX-\([^ ]\+\).*/\1/p'

sed命令只选择以关键字开头的行,并打印附加到它的版本。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50582275

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档