आज की तारीख प्राप्त करें और इसे फ़ाइल नाम में उपयोग करें


10

कमांड-लाइन का उपयोग करते हुए, मैं नाम में आज की तारीख के साथ एक लॉग फ़ाइल बनाना चाहता हूं (उदाहरण के लिए, आज 05/17/2011 है, इसलिए फ़ाइल नाम रखना होगा log051711)।

मुझे पता है कि फ़ाइल कैसे बनाई जाती है ( touch filename), लेकिन मुझे नहीं पता कि आज की तारीख कैसे प्राप्त की जाए। मैंने मैनुअल के लिए देखा है date, लेकिन ऐसा लगता है कि मैं वास्तव में इसके आउटपुट को प्रारूपित नहीं कर सकता हूं?

किसी भी सहायता की सराहना की जाएगी।

जवाबों:


10

आप '+ FORMAT' पैरामीटर का उपयोग करके आउटपुट को प्रारूपित कर सकते हैं, जैसे

touch "log$(date +'%m%d%y')"

FORMAT में आप किन दृश्यों का उपयोग कर सकते हैं, इसके लिए मैनपेज देखें।


लानत है, 36 सेकंड बहुत धीमा। ;-)
htorque

1
मुझे लगा कि एक क्रॉन जॉब में इसे इस्तेमाल करने के लिए, मुझे% -signs से बचना था, ताकि यह पढ़े:touch "log$(date +'\%m\%d\%y')"
लुई बी।

3

आज्ञा चलाना

echo "myfilename-"`date +"%d-%m-%Y"`

इसे आउटपुट के रूप में देता है:

myfilename-21-02-2014

असल में यह छपेगा myfilename-date +%d-%m-%Y
Adaephon

यह सच है .. MyFileName सिर्फ एक उपसर्ग है .. जरूरत पड़ने पर हम इसे रख सकते हैं, अन्यथा .. date +"%d-%m-%Y" यह पर्याप्त है ... यह केवल दिनांक 21-02-2014 को प्रिंट होगा
श्रीधर जीएस

आह, अब मैं देख रहा हूं: मैं भ्रमित हो गया क्योंकि `आपके उत्तर में प्रकट नहीं हुआ था। इसका कारण यह है कि कोड ब्लॉक को इंगित करने के लिए उन्हें आस्कुबंटु द्वारा उपयोग किया जाता है। आपको बैकटिक्स के साथ या उसके चारों ओर कोड को 4 रिक्त स्थान वाले कोड के साथ इंडेंट करके कोड को चिह्नित करना चाहिए। शुरुआत के लिए आपको संभवतः संपादक के ऊपर मेनू का उपयोग करना चाहिए और सबमिट करने से पहले अपने पोस्ट को टेक्स्टबॉक्स के नीचे पूर्वावलोकन में देखें।
Adaephon


0

मुझे यकीन है कि किसी और के पास ऐसा करने का एक बेहतर तरीका है, लेकिन यह मानते हुए कि आपको महीने-दिन चाहिए, यह काम करना चाहिए:

touch log`date +%m%d%y`  

और आप चाहते हैं कि आदेश को प्रतिबिंबित करने के लिए% m,% d,% Y को फिर से व्यवस्थित करें। तारीख के लिए मैन पेज आपको अतिरिक्त प्रारूपों के बारे में बताता है।


0

अजगर इस काम को भी कर सकता है। इसके लिए छोटी स्क्रिप्ट निम्नलिखित होगी:

#!/usr/bin/env python
import time,os

date=time.gmtime()
month = str(date.tm_mon).zfill(2)
day=str(date.tm_mday).zfill(2)
year=str(date.tm_year)[-2:]
fname = 'log' + month + day + year

with open(fname,'a') as f:
    os.utime(fname,None) 

यहां विचार सरल है: हम time.gmtime()वर्तमान तिथि प्राप्त करने के लिए उपयोग करते हैं, संरचना से विशिष्ट क्षेत्रों को वापस लेते हैं, उपयुक्त फ़ील्ड को स्ट्रिंग में परिवर्तित करते हैं, और परिणामी नाम के साथ फ़ाइल नाम बनाते हैं।

परीक्षण चालन:

$ ls
touch_log_file.py*
$ ./touch_log_file.py                                                                                             
$ ls
log010317  touch_log_file.py*

लिखने के समय यह 3 जनवरी, 2017 है। इस प्रकार परिणामी फ़ाइल नाम उचित रूप से महीना, दिन, वर्ष है - log010317

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