カンマ区切りの大きなファイルがあります。ゼロを含むx列(最初の行を除く)を含む行をフィルタリングする必要があります。簡単にするために、4つ以上のゼロを含む行をフィルタリングするとします。
gene,v1,v2,v3,v4,v5,v6,v7
gene1,0,1,5,0,0,4,100
gene2,1,0,0,0,5,210,2
gene3,0,0,0,0,6,0,0
次を返します。
gene,v1,v2,v3,v4,v5,v6,v7
gene1,0,1,5,0,0,4,100
gene2,1,0,0,0,5,210,2
「gene3」をフィルタリングします。
私が試したことは次のとおりです(「、0」を区切り文字として使用しようとしましたが失敗しました)。
awk -F',0' 'NF<4 {print}' file.csv
ベストアンサー1
、awk -F',0'
の3つのコピーは,0
3つのコピーとして扱われます。区切り記号、4つ提供フィールド銃。したがって、これを使用すると、awk -F',0' 'NF<5 {print}'
出力に正しい行が表示されます。
,0
213,0123
0区切り文字として使用したり使用したりしないなどの文字列とも一致します。
したがって、フィールド区切り文字として使用することも、ゼロ,
を1つだけ含むフィールドの数を計算することもできます。
awk -F, '{z=0; for (i = 1 ; i <= NF ; i++) if ($i == 0) z++} z <= 4' file.csv