UnderTheWater’s diary

日々の生活の中のメモを残していきます。

「血圧グラフをgnuplotで描画する」で使っていたAWKスクリプトに問題があり、修正しました。

「血圧グラフをgnuplotで描画する」で使っていたAWKスクリプトに問題があった様で、グラフが正しく描画されませんでした。

PCでデータ変換(1行1項目を1行4項目に変換)

これにはまずAWKスクリプトを作成しています。
注) 日時を元に血圧(上、下)、脈拍を1行にする箇所に問題がありました。

BEGIN{
    FS=","
    OFS=","
    timestamp=""
    sw=0
}
substr($2,12,5) != timestamp {timestamp=substr($2,12,5); sw=0; yyyy=substr($2,1,4); mm=substr($2,6,2); dd=substr($2,9,2); time=substr($2,12,5)}
/^Systolic/ {systolic=$3; sw++}
/^Diastolic/ {diastolic=$3; sw++}
/^Pulse/ {pulse=$3; sw++}
sw > 2 {printf "%s/%s/%s %s %s %s %s\n",yyyy,mm,dd,time,systolic,diastolic,pulse}

更にこれをワンライナーで実行しました。(以降の操作には変更ありません)

$ sort -t, -k2 'TrackAndGraph-My first track group-20221106-110110.csv' > 11s.txt && awk -f edit2m.awk 11s.txt > 11m.txt

ここで edit2m.awk が上のスクリプトです。

これで測定日付、時刻、血圧(上)、血圧(下)、脈拍が1行になっています。(脈拍は使っていません)

     :
     :
2022/11/06 06:34 126.0 84.0 65.0
2022/11/06 20:21 140.0 83.0 89.0
2022/11/07 05:11 120.0 86.0 67.0
     :

このできあがったファイルを先日ブログにしたgnuplotでグラフ描画をしています。

ーーーーーーーーーー もうちょっとスマートにできないかな。