私は数字のファイルを持っています.2行の数値と各列の数値を合計したいのですが、最後のステップでは、 '0'の合計カウントの3つ以上のカウントを有する。awkコマンドを使用して行のペアを合計し、特定の条件でフィルタを外す
これは私のファイル(ofcのコメントなし)であり、2行の行(= 4行)と5列のファイルが入っています。
2 6 0 8 9 # pair 1.A
0 1 0 5 1 # pair 1.B
0 2 0 3 0 # pair 2.A
0 0 0 0 0 # pair 2.B
そして、私はそう、私はその後、私は、元の行を印刷したい。このような何か(中間ステップ)
2 7 0 13 10 # sum pair 1, it has one 0
0 2 0 3 0 # sum pair 2, it has three 0
を得る線対を総括する必要がありますが、唯一のものが0の合計(2つのラインの和)従って、私はこれを印刷取得する必要があり、3未満である。
2 6 0 8 9 # pair 1.A
0 1 0 5 1 # pair 1.B
ラインの第二の対の和三0
を有するので、それはexcludなければなりませんed
最初のファイルから、私は最後の出力を取得する必要があります。
今まで私ができることは、行のペアを合計し、ゼロを数え、3より小さい数を持つものを0
と特定することです。しかし、私はこの2行を印刷する方法を知らないSUM、私は2行(最後の行)のうちの1行しか印刷できません。
awk '
NR%2 { split($0, a); next }
{ for (i=1; i<=NF; i++) if (a[i]+$i == 0) SUM +=1;
if (SUM < 3) print $0; SUM=0 }' myfile
(それは私が今何を得るのです)
0 1 0 5 1 # pair 1.B
感謝を:これは私が使用していますawkのです!
それはあまりにも道高速です、ありがとう! – Dovi
@Dovi、よろしくお願いします – RomanPerekhrest