csv 파일의 밀리초 열을 초로 변환

csv 파일의 밀리초 열을 초로 변환

다음과 같은 헤더가 없고 탭으로 구분된 큰 파일이 있습니다.

Tue Jun 09 18:06:53 GMT 2020    1591726013187
Tue Jun 09 18:20:31 GMT 2020    1591726831779
Tue Jun 09 18:09:01 GMT 2020    1591726141456

두 번째 열을 밀리초에서 초로 변환하려고 하는데 몇 가지 문제가 있는 것 같습니다. 이것이 내가 사용하는 것입니다:

awk '{print strftime("%c", ( $2 + 500 ) / 1000 )}' file.tsv

awk를 사용하는 것이 파일 크기를 고려할 때 가장 효율적인 접근 방식인지 확실하지 않습니다. 어떤 조언이라도 감사드립니다.

답변1

나는 여전히 귀하의 질문이 매우 형편없게 표현되었다고 생각합니다. 그러나 귀하의 의견을 보면 귀하가 원하는 것 같습니다.이것:

$ echo -e  "Tue Jun 09 18:20:31 GMT 2020\t1591726831779" | awk  -F"\t" '{printf "%s\t%u\n",  $1, ($2+500)/1000 }'
Tue Jun 09 18:20:31 GMT 2020    1591726832

답변2

반올림에 신경 쓰지 않지만 밀리초 숫자를 자를 수 있다고 결정한 경우 다음을 수행할 수 있습니다.

sed 's/...$//' file

sed -i원본 내용을 덮어쓰는 데 사용됩니다 .

관련 정보