私はawk
4番目のカンマ区切りフィールドをすべて分単位で取得するために使用しています。必要な出力形式は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をすでに知っていれば、それが何をしているのかを理解しやすいことです。