提取适合字符模式的行,后跟可变数字

时间:2019-01-11 09:13:11

标签: awk

我有一个包含多列的文件,我只想提取第8列中的值大于0.7(最大为1)的那些行。我的第八列看起来像这样:

DR2=0.05;AF=0.0009;IMP
DR2=0.05;AF=0.0017;IMP
DR2=0.74;AF=0.0012;IMP

我已经在awk中尝试了以下代码:

 awk '{$8 ~ /^DR2=[>0.7]*/ }' myfile > myfile.filtered

我尝试仅识别“ DR2 =”部分并且它起作用,所以问题似乎出在数字部分。

非常感谢您提供的高级帮助,我们将不胜感激!

3 个答案:

答案 0 :(得分:1)

理想情况下,您应该根据显示的示例发布完整的示例,请尝试以下。

awk '$8 ~ /^DR2=/{split($8,array,"[=;]");if(array[2]>0.7){print}}' Input_file

答案 1 :(得分:0)

类似的事情可以完成工作:

extension UIViewController {
            open override func awakeFromNib() {
                navigationItem.backBarButtonItem = UIBarButtonItem(title: "", style: .plain, target: nil, action: nil)
        }  
}

答案 2 :(得分:0)

请尝试:

awk 'gensub("^.*DR2=([0-9\.]+).*$", "\\1", 1, $4) > 0.7' myfile