"date +FORMAT" 명령 - %a, %A, %b 등은 무엇입니까?

"date +FORMAT" 명령 - %a, %A, %b 등은 무엇입니까?

date명령은 아래와 같이 현재 날짜와 시간을 출력합니다 Fri Apr 12 15:04:03 UTC 2013.

날짜/시간을 사용자 정의 형식으로 출력하려면 date +FORMAT다음 과 date "+%Y-%m-%dT%H:%M:%S%:z"같이 사용할 수 있습니다 2013-04-12T15:04:37+00:00.

%Y그런데 , , , , 등을 집합적으로 무엇이라고 부르는지 ( %m즉, 용어) 알고 싶습니다 %d. 게다가 다른 것과 다른데, 뭐라고 부르나요?%H%M%ST

답변1

POSIX 사양에 사용되는 용어date명령은 "사양 변환"입니다.

명령의 형식 문자열은 dateC 함수의 형식 문자열과 밀접하게 관련되어 있습니다 printf. C 표준에서는 %d"변환 사양"과 같은 내용도 언급합니다.

T앞에 나오지 않은 문자는 %단 하나의 문자입니다. "다른 모든 문자는 변경되지 않은 채 출력에 복사되어야 합니다."

POSIX 설명의 변경 기록 섹션에 따르면 다음과 같습니다 date.

LC_TIME 범주와 일치하도록 필드 설명자 대신 변환 사양을 참조하도록 설명이 업데이트되었습니다.

분명히 이전 버전의 사양에서는 "필드 설명자"라는 용어를 사용했지만 "변환 사양"이 현재 공식 용어입니다.

물론 이것이 당신을 의미하는 것은 아닙니다가지다이런 식으로 언급하세요.

답변2

나는 "이스케이프 시퀀스" 또는 (이 경우) "특수 문자의 퍼센트 이스케이프 시퀀스"가 이를 참조하는 일반적인 방법이라고 생각합니다. 백슬래시와 퍼센트 이스케이프 시퀀스는 C(예: printf)에서 광범위하게 사용되므로 많은 Unix 명령(예: 셸 프롬프트 지정)으로 필터링됩니다.

"이스케이프 시퀀스"는 "%Y", "%m", "%d" 등입니다. "특수 문자"는 "Y", "m", "d" 등입니다. "%"는 "이스케이프 문자"(다음 문자에 특이한/특별한 의미를 부여하는 문자)입니다.

답변3

이 파일IBM 정보 센터에서는 다음과 같이 명확하게 설명합니다.알파벳%Y, %m, %d, %H, %M등을 %S"라고 합니다.필드 설명자".

각각 앞에 와야 합니다.필드 설명자%(퍼센트 기호). 시스템은 필드 설명자를 지정된 값으로 바꿉니다. [...] 이 date명령은 추가 문자를 변경하지 않고 출력에 복사합니다.

이것은 내 질문(%n과 T에 관한)에 대한 답변입니다. 나는 이것이 가장 권위 있다고 믿습니다.

답변4

다른 사람들이 말했듯이 이것은 T문자 그대로의 편지입니다 T. 그러나 구체적으로 귀하의 예는 date "+%Y-%m-%dT%H:%M:%S%:z"다음을 준수하는 형식 문자열로 보입니다.ISO-8601날짜 및 시간 지정. T날짜와 시간을 구분하는 구분 기호는 다음과 같습니다 .

관련 정보