밀리미터를 hh:mm로 변환

밀리미터를 hh:mm로 변환

나는 awk네 번째 쉼표로 구분된 필드를 모두 분 단위로 가져오는 데 사용하고 있습니다. 필요한 출력 형식은 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를 이미 알고 있다면 그것이 무엇을 하는지 이해하기 쉽다는 것입니다.

관련 정보