加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Linux > 正文

正则表达式 – 如何仅使用grep / sed提取子字符串和数字

发布时间:2020-12-13 19:06:39 所属栏目:Linux 来源:网络整理
导读:我有一个包含文本和数字的文本文件,我想使用grep只提取我需要的数字,例如,给定一个文件如下: miss rate 0.21 ipc 222 stalls n shdmem 112 所以说我只想提取错过率为0.21的数据.我如何用grep或sed做到这一点?另外,我需要多个号码,而不仅仅是未命中率之后的

我有一个包含文本和数字的文本文件,我想使用grep只提取我需要的数字,例如,给定一个文件如下:

miss rate 0.21  
ipc 222  
stalls n shdmem 112

所以说我只想提取错过率为0.21的数据.我如何用grep或sed做到这一点?另外,我需要多个号码,而不仅仅是未命中率之后的号码.也就是说,我可能想要得到0.21和112.示例输出可能如下所示:

0.21 222 112

因为我需要以后绘图的数据.

最佳答案
使用awk代替:

awk '/^miss rate/ { print $3 }' yourfile

要使用grep来完成它,你需要非标准扩展,比如这里使用GNRE grep使用PCRE(-P)和正向lookbehind(?< = ..)并且只匹配(-o):

grep -Po '(?<=miss rate ).*' yourfile

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读