私の問題を解決するのに役立ちますか?次のファイルがあります(カンマ区切り)。
A,250,13,820,0,80,201
B,0,0,0,0,3,0
C,0,2,1,0,0,0
D,0,1,105,0,0,10
5つの実際のゼロ値を持つ行(この場合は行B)を削除したいと思います。最終ファイルは次のようにする必要があります。
A,250,13,820,0,80,201
C,0,2,1,0,0,0
D,0,1,105,0,0,10
すべてのゼロが常に考慮されるため、コードを書くのに問題がありますawk
(各行には5つのゼロ値がありますが、行Bには5つの実際のゼロがあります)。スクリプトがあれば簡単になりますかperl
?
ベストアンサー1
Perlが救出に来る!
perl -aF, -ne 'print unless 5 == grep /^0$/, @F;' < input > output
-n
入力を1行ずつ読みます。-a
各行を @F 配列に分割する-F
分割方法の指定(この場合はカンマ)grep
ヒット数を返すためにスカラーコンテキストで使用されます。