ミリメートルをhh:mmに変換

ミリメートルをhh:mmに変換

私はawk4番目のカンマ区切りフィールドをすべて分単位で取得するために使用しています。必要な出力形式はhh:mmなので、分単位で変換する必要があります。

"jone","spdb-deploy","SD",25
"abrham","Data-deploy","DD",5
"crater","aps-deploy","AD",25
"valu","Platform-deploy","PD",5
"kiol","teer-deploy","TD",180
$ cat dat.csv | awk -F',' '{print $4}'
25
5
25
5
180

...上記の値は分単位で、この値を次のようにhh:mmで印刷したいと思います。

00:25
00:05
00:25
00:05
03:00

答え1

スクリプトを使用してください。

awk -F',' '{print $4}' dat.csv

次のように変更してください。

awk -F',' '{h=int($4/60);m=$4%60;printf "%02d:%02d\n", h,m}' dat.csv

答え2

フォーマットされた印刷機能を使用してください。

> awk -F, '{$4 = sprintf("%02d:%02d", int($4/60), $4%60)}1' OFS=, file
"jone","spdb-deploy","SD",00:25
"abrham","Data-deploy","DD",00:05
"crater","aps-deploy","AD",00:25
"valu","Platform-deploy","PD",00:05
"kiol","teer-deploy","TD",03:00

答え3

を使用すると cat dat.csv | awk -F',' '{printf("%02d:%02d\n", $4/60, $4%60)}' 機能します。これの利点は、Cのprintfをすでに知っていれば、それが何をしているのかを理解しやすいことです。

関連情報