कमांड 'तिथि + प्रारूप' -% 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और" टी "सिर्फ एक शाब्दिक" टी "है।
manatwork

@ मैनटवर्क पुरुष पृष्ठ में, मैंने सोचा कि अनुक्रम दोनों %Yऔर उनके संबंधित अर्थ को संदर्भित करता है।
its_me

सुझाव:date +"You will die in the year %Y"
इज़काता

@ इज़काता कोई मतलब नहीं (?)
its_me

1
@ TheoneManis बस इसका एक उदाहरण Tविशेष नहीं है। इसके अलावा, मुझे उस समय अजीब सा काम हो रहा था जब मैंने टाइप किया था (सहकर्मियों की बातचीत सुनकर)।
इज़काता

जवाबों:


7

dateकमांड के POSIX विनिर्देश में प्रयुक्त शब्द "रूपांतरण विनिर्देश" है।

dateकमांड के लिए प्रारूप स्ट्रिंग बारीकी से C के printfफ़ंक्शन के लिए प्रारूप स्ट्रिंग पर आधारित है; सी मानक %d"रूपांतरण विनिर्देशों" जैसी चीजों को भी संदर्भित करता है ।

Tपूर्ववर्ती नहीं %है सिर्फ एक चरित्र है: "अन्य सभी वर्ण परिवर्तन के बिना आउटपुट में कॉपी किए जाएंगे।"

POSIX विवरण के परिवर्तन इतिहास अनुभाग के अनुसार date:

DESCRIPTION को LC_TIME श्रेणी के साथ संगतता के लिए फ़ील्ड डिस्क्रिप्टर के बजाय रूपांतरण विनिर्देशों को संदर्भित करने के लिए अद्यतन किया जाता है।

इसलिए जाहिरा तौर पर विनिर्देश के एक पुराने संस्करण ने "फ़ील्ड डिस्क्रिप्टर" वाक्यांश का उपयोग किया, लेकिन "रूपांतरण विनिर्देश" वर्तमान आधिकारिक शब्द है।

बेशक इसका मतलब यह नहीं है कि आप है कि जिस तरह से उन्हें करने के लिए।


क्या " conversion sequences" या " format sequences" उपयुक्त शब्द भी हैं? मैं इस sequencesपर विचार कर रहा हूं specificationsक्योंकि यह वास्तव में मैन पेज के लिए उल्लिखित है date
इसका_मेव

2
@ TheoneManis: तीनों में से कोई भी पर्याप्त रूप से स्पष्ट है कि इसका क्या मतलब है।
कीथ थॉम्पसन

4

मुझे लगता है कि "पलायन अनुक्रम" या (इस मामले में) "प्रतिशत-बच गए अनुक्रमों के लिए विशेष वर्ण" उनके संदर्भ का विशिष्ट तरीका होगा। बैकस्लैश-एंड-एस्कैप्ड सीक्वेंस का उपयोग C (जैसे प्रिंटफ) में किया जाता है, इसलिए उन्होंने कई यूनिक्स-कमांड में भी फ़िल्टर किया है (जैसे शेल के लिए प्रॉम्प्ट निर्दिष्ट करना)।

"भागने का क्रम" "% Y", "% m", "% d" और इसी तरह; और "विशेष वर्ण" "Y", "m", "d" इत्यादि। "%" "एस्केप कैरेक्टर" होगा (वह चरित्र जो निम्नलिखित चरित्र को एक असामान्य / विशेष अर्थ देता है)।


3

इस दस्तावेज़ को आईबीएम के सूचना केन्द्र से स्पष्ट रूप से कहा गया है कि वर्णमालाओं में %Y, %m, %d, %H, %M, %S, आदि "कहा जाता है फील्ड वर्णनकर्ता "।

आपको प्रत्येक फ़ील्ड वर्णनकर्ता को एक % (प्रतिशत चिह्न) के साथ पूर्ववर्ती होना चाहिए । सिस्टम निर्दिष्ट विवरण के साथ फ़ील्ड डिस्क्रिप्टर को बदल देता है। [...] dateकमांड बदलाव के बिना आउटपुट में किसी भी अन्य वर्ण को कॉपी करता है।

यह मेरे दो सवालों (लगभग% n & T) का जवाब देता है। और मेरा मानना ​​है कि यह उतना ही आधिकारिक है जितना यह मिल सकता है।


1
IBM ने dateकमांड का आविष्कार नहीं किया ; क्या उनके प्रलेखन आधिकारिक बनाता है? वर्तमान में कमांड का व्यवहार POSIX द्वारा परिभाषित किया गया है, जो उस शब्द का उपयोग नहीं करता है। POSIX विवरण के निचले भाग में परिवर्तन इतिहास कहता है कि "LC_TIME श्रेणी के साथ संगतता के लिए फ़ील्ड डिस्क्रिप्टर के बजाय, रूपांतरण विनिर्देशों को संदर्भित करने के लिए DESCRIPTION को अपडेट किया गया है।", "रूपांतरण विनिर्देश" का अर्थ है, न कि "फ़ील्ड डिस्क्रिप्टर" सही है। वर्तमान पद। मेरा अद्यतन उत्तर भी देखें।
कीथ थॉम्पसन

2

जैसा कि दूसरों ने कहा है, Tएक शाब्दिक पत्र है T। लेकिन विशिष्ट होने के लिए, आपका उदाहरण दिनांक और समय के लिए ISO-8601 विनिर्देश के date "+%Y-%m-%dT%H:%M:%S%:z"अनुरूप एक प्रारूप स्ट्रिंग प्रतीत होता है । तो यहाँ एक सीमांकक है जो तारीख को समय से अलग करता है।T

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.