首页 > 解决方案 > 除了使用 awk 过滤的行之外,还包括文件名

问题描述

我有下面的 awk 命令,它根据给定的条件选择多个文件中的行。为了确定所选行来自哪个文件,我想将文件名包含在打印的行中。

awk '{ if($4 > 60*$2 &&$2>10 && $8="genus" && $10 !="unclassified") { print }}' *.tsv > out.txt

标签: awk

解决方案


$ awk '$4>60*$2 && $2>10 && $8=="genus" && $10!="unclassified" {print FILENAME,$0}' *.tsv > out.txt

修复$8="genus"了将值分配给$8而不是对其进行调节。您的输出可能是错误的。


推荐阅读