타임스탬프 값을 숫자로 변환한 다음 사람이 읽을 수 있는 값으로 변환하는 방법

타임스탬프 값을 숫자로 변환한 다음 사람이 읽을 수 있는 값으로 변환하는 방법

strftime오류가 발생하고 숫자여야 하므로 숫자로 변환해야 하는 문자열 타임스탬프 키가 있습니다.

journalctl -n1 --output=json | jq '.__REALTIME_TIMESTAMP | tonumber |= (. / 1000 | strftime("%Y-%m-%d")), .MESSAGE'

하지만 잘못된 경로 표현 오류가 발생합니다. 내 구문이 잘못된 것 같아요.

__REALTIME_TIMESTAMP나는 궁극적으로 사람이 읽을 수 있는 형식으로 키와 키를 표시하고 싶습니다 MESSAGE.

답변1

|=당신의 의도가 무엇인지 잘 모르겠습니다 .

다음과 같이 작동합니다.

$ journalctl -n1 --output=json |
    jq '(.__REALTIME_TIMESTAMP | tonumber/1000000 | strftime("%Y-%m-%d %H:%M:%S")), .MESSAGE'
"2023-11-11 21:44:27"
"[session uid=1000 pid=1420] Activation via systemd failed for unit 'gvfs-daemon.service': Unit gvfs-daemon.service is masked."

또는 형식화된/원시 출력:

$ journalctl -n1 --output=json | 
    jq -r '(.__REALTIME_TIMESTAMP | tonumber/1000000 | strftime("[%Y-%m-%d %H:%M:%S]: ")) + .MESSAGE'
[2023-11-11 21:44:27]: [session uid=1000 pid=1420] Activation via systemd failed for unit 'gvfs-daemon.service': Unit gvfs-daemon.service is masked.

관련 정보