로그 라인 타임스탬프를 다른 시간대로 변환하는 방법은 무엇입니까?

로그 라인 타임스탬프를 다른 시간대로 변환하는 방법은 무엇입니까?

YYYY-MM-DD hh:mm:ss각 줄의 시작 부분에 타임스탬프( )가 있는 로그가 있습니다 . 타임스탬프는 UTC 시간이지만 현지 시간에 무슨 일이 일어났는지 알고 싶을 때가 많습니다. 머리 속에서 전환할 수는 있지만 노력이 필요합니다.

일반적으로 로그를 grep으로 연결하여 필요한 것을 선택합니다. 나머지 줄은 그대로 유지하면서 한 시간대로 타임스탬프를 파이프할 수 있나요?

답변1

이것은 awk에서 끔찍하게 비효율적 인 솔루션입니다 ...

{
        cmd="date -d \"" $1 " " $2 " UTC\" \"+%F %H:%M:%S %Z\"";
        cmd | getline u
        $1="";
        $2="";
        print u $0;
}

개인적으로 저는 strtotime()을 지원하는 좀 더 전통적인 프로그래밍 언어로 무언가를 작성하고 싶습니다.

관련 정보