मैं दिनांक -d "मान" पर आउटपुट कैसे करूं?


15

मेरे पास "2014-01-30 05:04:27 GMT" जैसी तारीख है, और अगर मैं दिनांक -d "2014-01-30 05:04:27 GMT" चलाता हूं, तो आउटपुट मेरे सर्वर के टाइमज़ोन में है ("थू" जनवरी 30 16:04:27 ईएसटी 2014 ")।

ग्रीप और कट के उपयोग के साथ, मैंने एक फ़ाइल से जीएमटी में तारीख निकाली है। हालाँकि, मैं इसे अपने स्थानीय समय में बदलने के लिए संघर्ष कर रहा हूँ।

उदाहरण के लिए:

[उपयोगकर्ता @ सर्वर लॉग] # grep "कुछ" logfile.txt | grep "सफल" | cut -f1 -d '['

आउटपुट: 2014-01-30 05:04:27 GMT

मैं उस आउटपुट को "तारीख-डी" में पास करने के लिए आखिर में क्या जोड़ सकता हूं?

प्रयास किया गया:

  • [उपयोगकर्ता @ सर्वर लॉग] # grep "कुछ" logfile.txt | grep "सफल" | cut -f1 -d '[' | दिनांक
  • [उपयोगकर्ता @ सर्वर लॉग] # grep "कुछ" logfile.txt | grep "सफल" | cut -f1 -d '[' | तारीख
  • [उपयोगकर्ता @ सर्वर लॉग] # grep "कुछ" logfile.txt | grep "सफल" | cut -f1 -d '[' | दिनांक -d "$ 1"

जवाबों:


13
gmt="$(grep "something" logfile.txt | grep "Succeeded" | cut -f1 -d'[')"
date -d "$gmt"

या, यदि आप पाइपलाइन प्रारूप पसंद करते हैं:

grep "something" logfile.txt | grep "Succeeded" | cut -f1 -d'[' | { read gmt ; date -d "$gmt" ; }

समस्या यह है कि dateस्टडिन का उपयोग नहीं करता है। इस प्रकार, हमें स्टड को एक चर ( gmtयहां कहा जाता है) पर कब्जा करना होगा और फिर कमांड लाइन पर आपूर्ति करना होगा date

दूसरे दृष्टिकोण से नमूना उत्पादन:

$ echo  "2014-01-30 05:04:27 GMT" | { read gmt ; date -d "$gmt" ; }
Wed Jan 29 21:04:27 PST 2014

1
धन्यवाद, इससे समस्या हल हो गई! इसके अलावा आप इसकी वजह की सराहना करते हैं कि यह काम क्यों नहीं कर रहा था।
शेन

20

यदि आप जीएनयू तिथि का उपयोग पर्याप्त हाल के कोर्यूटिल्स से कर रहे हैं date -f, तो सहायता स्क्रीन से:

-f, --file=DATEFILE       like --date once for each line of DATEFILE

तो आपका प्रयास 4 हो सकता है:

$ grep "something" logfile.txt | grep "Succeeded" | cut -f1 -d'[' | date -f -

अंतिम -गति के लिए खड़ा है।


2
यह स्वीकृत उत्तर होना चाहिए।
पेट्रस के।

क्या उपरोक्त कमांड के उत्पादन की तुलना किसी विशेष तिथि से करना संभव है। उदाहरण के लिए। मुझे "बुध जनवरी 30 21:04:27 पीएसटी 2014" से पुरानी सभी तिथियों को सूचीबद्ध करने की आवश्यकता है
मनु

@ मनु प्रति नहीं, उस विशिष्ट उपयोग के मामले के लिए डेटटिल्स हैं dategrep
19 सितंबर को

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