3列の値に基づくcsvファイルのAwk合計行

user3616643

Iamはこのawkを使用してcsvファイルを処理します:

awk 'BEGIN {FS=OFS=";"} (NR==1) {$9="TpmC"; print $0} (NR>1 && NF) {a=$2$5; sum6[a]+=$6; sum7[a]+=$7; sum8[a]+=$8; other[a]=$0} END
{for(i in  sum7) {$0=other[i]; $6=sum6[i]; $7=sum7[i]; $8=sum8[i]; 
$9=(sum8[i]?sum8[i]/sum6[i]:"NaN"); print}}' input.csv > output.csv 

列6、7、8の行の合計を実行してから、列2と5の同じ値の行に対してsum8 / sum6のすべてを除算します。

それについて2つの質問があります
1)同じ機能が必要ですが、すべての計算は、列2、3、および5の同じ値を持つ行に対して実行する必要があります。

a=$2$5;

b=$2$3; a=$b$5;

しかし、それは私に間違った数を与えます。

2)値を持つすべての行を削除するにはどうすればよいですか?

Date;DBMS;Mode;Test type;W;time;TotalTPCC;NewOrder Tpm

最初の行を除いて?

csv.inputの例を次に示します。

Date;DBMS;Mode;Test type;W;time;TotalTPCC;NewOrder Tpm
Tue Jun 16 21:08:33 CEST 2015;sqlite;in-memory;TPC-C test;1;10;83970;35975
Tue Jun 16 21:18:43 CEST 2015;sqlite;in-memory;TPC-C test;1;10;83470;35790
Date;DBMS;Mode;Test type;W;time;TotalTPCC;NewOrder Tpm
Tue Jun 16 23:35:35 CEST 2015;hsql;in-memory;TPC-C test;1;10;337120;144526
Tue Jun 16 23:45:44 CEST 2015;hsql;in-memory;TPC-C test;1;10;310230;133271
Thu Jun 18 00:10:45 CEST 2015;derby;on-disk;TPC-C test;5;120;64720;27964
Thu Jun 18 02:41:27 CEST 2015;sqlite;on-disk;TPC-C test;1;120;60030;25705
Thu Jun 18 04:42:14 CEST 2015;hsql;on-disk;TPC-C test;1;120;360900;154828   

output.csvは次のようになります

Date;DBMS;Mode;Test type;W;time;TotalTPCC;NewOrder Tpm;TpmC
Tue Jun 16 21:08:33 CEST 2015;sqlite;in-memory;TPC-C test;1;20;167440;71765;3588.25
Tue Jun 16 23:35:35 CEST 2015;hsql;in-memory;TPC-C test;1;20;647350;277797;13889.85
Thu Jun 18 00:10:45 CEST 2015;derby;on-disk;TPC-C test;5;120;64720;27964;233.03
Thu Jun 18 02:41:27 CEST 2015;sqlite;on-disk;TPC-C test;1;120;60030;25705;214.20
Thu Jun 18 04:42:14 CEST 2015;hsql;on-disk;TPC-C test;1;120;360900;154828;1290.23
ネイサンウィルソン

列2、3、および5でグループ化するには、を使用しますa=$2$3$5余分なヘッダー行を削除するには、matchステートメントを追加します($1 !~ /^Date/)

したがって、awkスクリプト全体は次のようになります。

BEGIN {
  FS=OFS=";"
}
(NR==1) {$9="TpmC"; print $0}
(NR>1 && NF && ($1 !~ /^Date/)) {
  a=$2$3$5; sum6[a]+=$6; sum7[a]+=$7; sum8[a]+=$8; other[a]=$0
}
END {
  for(i in sum7) {
    $0=other[i]; $6=sum6[i]; $7=sum7[i]; $8=sum8[i]; $9=(sum8[i]?sum8[i]/sum6[i]:"NaN"); print
  }
}

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

フィールドに基づくAwk合計csv列

分類Dev

列のヘッダーに基づくファイルからのAWK参照列

分類Dev

値に基づく2つのテーブル列の合計

分類Dev

awk-一致する列に基づいて2つの.csvファイルを結合します

分類Dev

フィルタに基づくファイルへのawk出力

分類Dev

同じ行の異なる列の値に基づくExcelの合計値

分類Dev

Pythonでcsvファイルの最初の列の値に基づいて行を分離する方法

分類Dev

列の値に基づいて、datatframeから複数のCSVファイルに行を抽出する方法は?

分類Dev

文字列PowerBIに基づくフィルターとの合計

分類Dev

特定の列の値に基づくすべての行の合計

分類Dev

Javascriptは、最初の列の値に基づいてcsvファイルから行を分割します

分類Dev

列の値に基づいてCSVファイルを少数のcsvファイルに分割します

分類Dev

Daskを使用して列の値に基づいてcsvファイルをいくつでも保存する

分類Dev

csvファイルの列に定義された値に基づいて行を分割します

分類Dev

フィールド値に基づくファイルへのawkリダイレクトの仕組み

分類Dev

csvファイルの列データに基づくJava抽出カウント

分類Dev

MySQL:別の列の値に基づく列の合計

分類Dev

別の列の値に基づく列の累積合計(R)

分類Dev

Rの他の列に基づく列値の合計

分類Dev

行と列の条件の基準に基づく合計

分類Dev

列の値に基づく行のフィルタリング

分類Dev

列の値に基づいてCSVファイルを複数のファイルに分割する方法

分類Dev

列の値に基づいてファイルを行に分割する

分類Dev

他の列の値に基づく現在の合計

分類Dev

右上のセルの値に基づくセルの合計

分類Dev

Spark:列の値に基づく行フィルター

分類Dev

ファイル名に基づくPDFの組み合わせ

分類Dev

col値に基づくMySQLの合計

分類Dev

親に基づく子の合計値

Related 関連記事

  1. 1

    フィールドに基づくAwk合計csv列

  2. 2

    列のヘッダーに基づくファイルからのAWK参照列

  3. 3

    値に基づく2つのテーブル列の合計

  4. 4

    awk-一致する列に基づいて2つの.csvファイルを結合します

  5. 5

    フィルタに基づくファイルへのawk出力

  6. 6

    同じ行の異なる列の値に基づくExcelの合計値

  7. 7

    Pythonでcsvファイルの最初の列の値に基づいて行を分離する方法

  8. 8

    列の値に基づいて、datatframeから複数のCSVファイルに行を抽出する方法は?

  9. 9

    文字列PowerBIに基づくフィルターとの合計

  10. 10

    特定の列の値に基づくすべての行の合計

  11. 11

    Javascriptは、最初の列の値に基づいてcsvファイルから行を分割します

  12. 12

    列の値に基づいてCSVファイルを少数のcsvファイルに分割します

  13. 13

    Daskを使用して列の値に基づいてcsvファイルをいくつでも保存する

  14. 14

    csvファイルの列に定義された値に基づいて行を分割します

  15. 15

    フィールド値に基づくファイルへのawkリダイレクトの仕組み

  16. 16

    csvファイルの列データに基づくJava抽出カウント

  17. 17

    MySQL:別の列の値に基づく列の合計

  18. 18

    別の列の値に基づく列の累積合計(R)

  19. 19

    Rの他の列に基づく列値の合計

  20. 20

    行と列の条件の基準に基づく合計

  21. 21

    列の値に基づく行のフィルタリング

  22. 22

    列の値に基づいてCSVファイルを複数のファイルに分割する方法

  23. 23

    列の値に基づいてファイルを行に分割する

  24. 24

    他の列の値に基づく現在の合計

  25. 25

    右上のセルの値に基づくセルの合計

  26. 26

    Spark:列の値に基づく行フィルター

  27. 27

    ファイル名に基づくPDFの組み合わせ

  28. 28

    col値に基づくMySQLの合計

  29. 29

    親に基づく子の合計値

ホットタグ

アーカイブ