쉘 스크립트에서 ppp.log 파일에 사용 된 것과 동일한 타임 스탬프 형식을 만드는 방법은 무엇입니까?


0

ppp.log에 사용자 정의 로깅 메시지를 추가해야 할 때 명령을에 출력 할 때 날짜와 시간이 누락되었음을 알 수 >> /var/log/ppp.log있습니다. ppp.log의 다른 pppd 관련 메시지 앞에 " Sat Apr 9 17:18:02 2016 :" 와 유사한 타임 스탬프 형식이 붙습니다 . 내 목표는이 정확한 날짜 시간 형식을 매버릭스 쉘 스크립트 로 출력하는 것입니다

다른 로그 파일의 날짜 / 시간 타임 스탬프가 다르다는 것을 알고 있습니다. ppp.log에 사용 된 형식을 다시 만들고 싶습니다.

회귀

이 Mac OS X 10.9 환경은 네덜란드어 로켈로 구성되어 있습니다. 따라서 원하는 " " 대신 $ echo $(date '+%a')" za"을 반환합니다 Sat. export LC_TIME="C"또는 로 고정 할 수있는 부분입니다 export LC_TIME="POSIX". 나는 읽을 시도 datepppd맨 페이지를. 그러나 출력 " "에 약자 알파벳 시간대 이름 CEST (의 %Z일부 $ date +%Z) 가 여전히 Sat Apr 9 18:12:12 CEST 2016있습니다.

나는 etcetera $ date와 같은 다른 모든 형식 코드를 사용하여 형식을 만들 수 있다는 것을 알고 있습니다 %a %b %e. 더 짧은 방법이 있다고 생각하지만 그렇지 않습니까?

답변:


1

많은 검색 후 "알파벳 시간대 약어가없는 날짜 형식"을 검색 하면 날짜 및 시간 표시 표준 인 ISO 8601에 대한 정보가 리턴 됩니다. 이 정보를 통해 Mavericks에서 /private/var/log/ppp.log 파일에 사용되는 타임 스탬프 형식이 실제로 ANSI C의 asctime () 형식임을 알 수있었습니다.

C 상승 시간

쉘에서 C 스타일 asctime을 작성하려면 영어 이외의 시스템은 시간 메시지에 대한 환경 변수를 대체해야합니다.

export LC_TIME="C"

그런 다음 원하는 형식으로 현지 날짜 시간을 표시 하는 $ date서식 옵션 %c이 있습니다.

$ date +%c
Sat Apr  9 21:10:20 2016

사용시 팁 echo date은 아포스트로피 사이에 날짜를 넣으십시오 echo "$(date +%c)". 그렇지 않으면 한 자리 날짜의 필러 공간이 출력에서 ​​제거 될 수 있습니다.

$ echo $(date +%c)
Sat Apr 9 21:13:57 2016
$ echo "$(date +%c)"
Sat Apr  9 21:14:30 2016
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.