コマンド 'date + FORMAT' —%a、%A、%bなどは何と呼ばれますか?


10

この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他とは違うので、何と呼ばれていますか?


3
「FORMATは出力を制御します。解釈されたシーケンスは…」–男性dateそして「T」は文字通りの「T」です。
manatwork 2013

@manatwork manページでは、シーケンス%Yとそれぞれの意味の両方を指していると思いました。
its_me 2013

ヒント:date +"You will die in the year %Y"
イズカタ

@Izkataは意味をなさない(?)
its_me

1
@TheoneManis T特別ではないことのほんの一例。また、私はそれをタイプしたとき、同僚との会話を聞いて、変な一日を過ごしていました。
イズカタ2013

回答:


7

dateコマンドのPOSIX仕様で使用される用語は「変換仕様」です。

以下のためのフォーマット文字列dateコマンドは密接にCのためのフォーマット文字列に基づいているprintf機能。C規格では%d、「変換仕様」なども参照しています。

T先頭に%文字が付いていないのは、「他のすべての文字は変更せずに出力にコピーされる」です。

POSIXの説明の変更履歴のセクションによるとdate

LC_TIMEカテゴリーとの整合性のために、フィールド記述子ではなく、変換仕様を参照するように、説明が更新されました。

したがって、仕様の以前のバージョンでは「フィールド記述子」というフレーズが使用されていたようですが、「変換仕様」が現在の公式用語です。

もちろん、そのように参照する必要があるという意味ではありません。


conversion sequences」または「format sequences」も適切な用語ですか?実際にのmanページで言及されているので、私はそれについて検討sequencesしていspecificationsますdate
its_me 2013

2
@TheoneManis:3つのうちのどれでも、それが何を意味するかについて十分に明白であるように見えます。
キース・トンプソン

4

「エスケープシーケンス」または(この場合は)「パーセントエスケープシーケンスの特殊文字」は、それらを参照する典型的な方法だと思います。バックスラッシュとパーセントでエスケープされたシーケンスは、C(たとえば、printf)でよく使用されるため、いくつかのUnixコマンド(シェルのプロンプトの指定など)にフィルター処理されています。

「エスケープシーケンス」は「%Y」、「%m」、「%d」などです。「特殊文字」は「Y」、「m」、「d」などです。"%"は "エスケープ文字"(次の文字に特殊な/特別な意味を与える文字)です。


3

このドキュメントは IBMのインフォメーション・センターからは、はっきりと述べているアルファベット%Y%m%d%H%M%S、などが「と呼ばれているフィールド記述子」。

あなたは、各先行しなければならないフィールドの記述をして(パーセント記号)。システムは、フィールド記述子を指定された値に置き換えます。[...] dateコマンドは、他の文字を変更せずに出力にコピーします。

これで私の2つの質問(%nとTについて)に答えます。そして、これはできる限り権威があると私は信じています。


1
IBMはこのdateコマンドを発明しませんでした。ドキュメントの信頼性を高めるものは何ですか?コマンドの動作は現在、POSIXで定義されており、その用語は使用されていません。POSIXの説明の下部にある変更履歴には、「説明はLC_TIMEカテゴリとの一貫性のためにフィールド記述子ではなく変換仕様を参照するように更新されています。」とあり、「フィールドダイスクリプト」ではなく「変換仕様」が正しいことが示されています。当期。私の更新された回答も参照してください。
キース・トンプソン

2

他の人が述べたように、これTは文字通りの文字Tです。ただし、具体的には、日付と時刻のISO-8601仕様にdate "+%Y-%m-%dT%H:%M:%S%:z"準拠したフォーマット文字列のように見えます。したがって、ここでは、日付と時刻を区切る区切り文字です。T

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.