Filter 使用AWK筛选值为0的文件

Filter 使用AWK筛选值为0的文件,filter,awk,Filter,Awk,我的文件包含36列(以制表符分隔),前4列包含名称和标识信息,其余32列包含浮点数(双精度或0)。我想过滤掉最后32列中有0个值的行(在输出文件中也是以制表符分隔的) 我正在考虑使用这个: if ($5 != 0 && $6 !=0 && ..... $36 != 0) {print $0} 但是这看起来很难看,我想效率不高,因为if语句中有32个条件。有什么有效的方法来完成这项工作吗?谢谢您使用循环: awk '{ for (i=5; i<=NF; i+

我的文件包含36列(以制表符分隔),前4列包含名称和标识信息,其余32列包含浮点数(双精度或0)。我想过滤掉最后32列中有0个值的行(在输出文件中也是以制表符分隔的)

我正在考虑使用这个:

if ($5 != 0 && $6 !=0 && ..... $36 != 0) {print $0}

但是这看起来很难看,我想效率不高,因为if语句中有32个条件。有什么有效的方法来完成这项工作吗?谢谢您

使用
循环:

awk '{ for (i=5; i<=NF; i++) { if ($i != 0) { print; next } } }' infile

awk'{for(i=5;i这里有一个简短的
awk
给你

awk '/[[:space:]].*[1-9]/' file