条件の一部としてCSVをカットする方法

条件の一部としてCSVをカットする方法

次のデータを含むCSVファイルがあります。

time     t_count       state       hour
_____    ________      _____      _____
  1        10            2          1
  2        12            2          1
  3        30            2          1
  4        12            2          1
  1        9             3          1
  2        18            3          1
  6        27            3          1
  1        18            4          1
  2        30            4          1
  9        27            4          1
.......................................
......................................
  2        30            2          2
  8        18            2          2
  3        36            2          2
  3        6             3          2
  6        19            3          2
  8        28            3          2
  1        19            4          2
  2        36            4          2
  9        30            4          2
.....................................
.....................................
....................................

同様に、週と時間ごとに時間とt_countがあります。状態は2から99まで、時間は1から23までです。したがって、このCSVを次のように各週と時間ごとに各CSVに分割する必要があります。

 state_2_hour_1.csv
  1        10            2          1
  2        12            2          1
  3        30            2          1
  4        12            2          1



 state_3_hour_1.csv

  1        9             3          1
  2        18            3          1
  6        27            3          1

...

state_2_hour_2.csv
      2        30            2          2
      8        18            2          2
      3        36            2          2

など。

答え1

このawkコマンドを試してください。

awk 'NR>2{filename="state_"$3"_hour_"$NF".csv"; print $0 > filename}' input.csv

関連情報