다음과 같은 헤더가 없고 탭으로 구분된 큰 파일이 있습니다.
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
원본 내용을 덮어쓰는 데 사용됩니다 .