首页 > 解决方案 > 匹配标准并使用 awk 打印

问题描述

我有一个文件,我正在尝试获取以下信息。有几个标题,我的条件如下,返回在第 5 列中找到“PO”的时间计数。但是我也想打印符合条件的条目。我怎么做?

awk 'BEGIN {count = 0} $5 == "PO" && $13 <0.01 {count++} END {print(count)}' 1.genome

标签: awkprintingcount

解决方案


您可以在花括号内执行多项操作。如果您将其保留为单行,请用分号分隔每个命令。例如

awk 'BEGIN {count = 0} $5 == "PO" && $13 <0.01 {print $0; count++} END {print count}' 1.genome

随着复杂性的增加,您可能希望将其格式化为多行:

awk '
    BEGIN {
        count = 0
    } 

    $5 == "PO" && $13 < 0.01 {
        print $0
        count++
    } 

    END {
        print count
    }
' 1.genome

推荐阅读