他のテーブルのセクションを含むファイルがあります。ヘッダーN * dNで、各列に含まれるすべての値を追加したいと思います。
たとえば、
omega (dN/dS) = 999.00000
dN & dS for each branch
branch t N S dN/dS dN dS N*dN S*dS
11..6 0.000 532.0 266.0 999.0000 0.0000 0.0000 3.0 0.0
11..7 0.000 532.0 266.0 999.0000 0.0000 0.0000 4.0 0.0
11..12 0.000 532.0 266.0 999.0000 0.0000 0.0000 0.5 0.0
omega (dN/dS) = 1.00000
dN & dS for each branch
branch t N S dN/dS dN dS N*dN S*dS
11..6 0.000 532.0 266.0 999.0000 0.0000 0.0000 7.0 0.0
11..7 0.000 532.0 266.0 999.0000 0.0000 0.0000 2.0 0.0
11..12 0.000 532.0 266.0 999.0000 0.0000 0.0000 0.4 0.0
希望の出力:
7.5
9.4
多分少し修正
awk '{s+=$8}END{print s}'
そこで列ヘッダーを指定し、合計の合計ではなく、各合計に対して別々の結果を印刷することができます。
ベストアンサー1
この方法で使用できますawk
(コンテンツの後には常に一致するヘッダーがあり、すべての数が同じで、その間に空白行がないと仮定します)。
awk 'f{s+=$8;f++} ($8=="N*dN"){f=1} (f>4){print s;f=s=0}' infile
または、通常は次のように使用します。N*dN
8列目の次の項目にロールアップされます。
awk 'f{s+=$8} (f &&$8=="N*dN"){print s;f=s=0} ($8=="N*dN"){f=1} END{print s}' infile