私のファイルは次のとおりです。
SRR008602 97 99 99 99 98 99 98 11
SRR009633 99 99 99 99 99 100 100 10
SRR022120 0 0 0 0 0 0 0 0
SRR026121 0 0 0 0 0 0 0 0
SRR008724 80 79 99 99 99 99 99 18
2列から9列までの値が「0」の行数を計算したいと思います。私はawk
解決策を好む。これが私が思いついたもので、うまくいきます。しかし、これを行うより良い方法があるはずです。
awk '$2 == 0 && $3 == 0 && $4 == 0 && $5 == 0 && $6 == 0 && $7 == 0 && $8 == 0 && $9 == 0 {n++}; END {print n}' input.txt
ベストアンサー1
AwkのKISS:
awk '{for (i=2;i<=9;i++) if ($i != 0) next; n++} END {print n}' file
真珠:
perl -anE '$n += 8 == grep { $_ == 0 } @F[1..8] }{ say $n' file
または(Glenn Jackmanが提案したように)リスト::ユーティリティ基準寸法
perl -MList::Util=all -anE '$n++ if all {$_ == 0} @F[1..8]} {say $n' file