'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, %S등을 집합적으로 뭐라고 부르는지(즉, 용어) 알고 싶습니다 . 그리고 T나머지와 달라서 뭐라고 부르나요?

답변1

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

명령 의 형식 문자열은 dateC printf함수의 형식 문자열을 기반으로 합니다. C 표준에서는 %d"변환 사양"과 같은 것도 참조합니다.

T앞에는 %문자가 없습니다. "다른 모든 문자는 변경 없이 출력에 복사됩니다."

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

DESCRIPTION은 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날짜와 시간을 구분하는 구분 기호가 있습니다.

관련 정보