美文网首页
[perl]过滤每行中0数值超过一半列数的行

[perl]过滤每行中0数值超过一半列数的行

作者: Silver_42ac | 来源:发表于2023-02-07 16:55 被阅读0次
    # -F"\t" 指定分隔符为\t,否则 默认是[\t\s]
    # -e 执行command 就是单行
    # -a:使用空白作为缺省分隔符
    # -n:在脚本中加入while循环 while(<>){    }
    # -p:在脚本中加入while循环和print $_;命令  while(<>){print;  }; 由于这里自己控制输出,所以没带-p参数
    
    perl  -F"\t" -ane 
        ' if(/^#/){
                    print ;next;
                }else{ 
                    my $count=0; 
                    foreach $value (@F){
                            if($value==0){ 
                                $count++ ;
                            }
                    };
                    my $nf=@F;  # 强制转换
                    my $x=($nf-1)/2; # (length(@F)-1)/2
                    print $nf."\t".$x."\t".$count."\n";
                    if ($count < (length(@F)-1)/2){print $_;}
                     
                }'  inputfile |les
    # 查看结果
    perl  -F"\t" -ane ' if(/^#/){print ;next}else{ my $count=0; foreach $value (@F){if($value==0){ $count++ ;}};my $nf=@F;if ($count < ($nf-1)/2){print $_;} }'  inputfile |less
    
    # 查看数字
    perl  -F"\t" -ane ' if(/^#/){print ;next}else{ my $count=0; foreach $value (@F){if($value==0){ $count++ ;}};my $nf=@F;my $x=($nf-1)/2;print $nf."\t".$x."\t".$count."\n";if ($count < ($nf-1)/2){print $_;} }'  inputfile |less
    
    

    相关文章

      网友评论

          本文标题:[perl]过滤每行中0数值超过一半列数的行

          本文链接:https://www.haomeiwen.com/subject/suhfkdtx.html