使用grep从已知行中提取一系列随机数

时间:2015-12-06 04:47:10

标签: bash shell grep

我有一个简单的标量文件,可以生成像......

这样的字符串
bpred_2lev.ras_rate.PP    0.9413 # RAS prediction rate (i.e., RAS hits/used RAS)

一旦我使用grep在output.txt中找到这一行,有没有办法可以直接获取" 0.9413"一部分?我正在尝试制作一个cvs文件,只需要生成任何值。

提前致谢。

2 个答案:

答案 0 :(得分:2)

有几种方法可以将查找和提取结合到单个命令中:

  • awk(符合POSIX标准)

    awk '$1 == "bpred_2lev.ras_rate.PP" { print $2 }' file
    
  • sed GNU sed BSD / OSX sed

    sed -En 's/^bpred_2lev\.ras_rate\.PP +([^ ]+).*$/\1/p' file
    
  • GNU grep

    grep -Po '^bpred_2lev\.ras_rate\.PP +\K[^ ]+' file
    

答案 1 :(得分:0)

您可以像这样使用 awk

grep <your_search_criteria> output.txt | awk '{ print $2 }'