तिथि के अनुसार क्रमबद्ध करना


17

मूल:

23 जनवरी 2011 10:42 SOMETHING 2007.12.20.avi
26 जून 2009 SOMETHING 2009.06.25.avi
फरवरी 12 2010 सोमेथिंग 2010.02.11.avi
29 जनवरी 2011 09:17 सोम्मेटिंग 2011.01.27.avi
11 फरवरी 2011 20:06 2011 2011/10/10
27 फरवरी 2011 23:05 2011 2011.24। शाम

आउटपुट:

27 फरवरी 2011 23:05 2011 2011.24। शाम
11 फरवरी 2011 20:06 2011 2011/10/10
29 जनवरी 2011 09:17 सोम्मेटिंग 2011.01.27.avi
23 जनवरी 2011 10:42 SOMETHING 2007.12.20.avi
फरवरी 12 2010 सोमेथिंग 2010.02.11.avi
26 जून 2009 SOMETHING 2009.06.25.avi

मैंने उपरोक्त सूची (मूल) के साथ उत्पन्न की:

ls -A -lR | grep "^-" | sed "s/.\{43\}/&\n/" | grep -v "^-" | while read ONELINE; do if echo $ONELINE | cut -d " " -f3 | grep -o '[0-9][0-9]:[0-9][0-9]' > /dev/null 2>&1; then echo $ONELINE | sed "s/.\{7\}/&$(date +%Y) /"; else echo $ONELINE; fi; done

मैं आउटपुट कैसे प्राप्त कर सकता हूं जहां सबसे नई फ़ाइल शीर्ष पर है?


2
@ user4724: यूओ ने सूची कैसे बनाई?

@ user4724: यह मेरे लिए एक ही प्रकार का आउटपाउट उत्पन्न नहीं करता है जो आपके पास है - कोई बात नहीं क्योंकि गाइल्स का जवाब है

जवाबों:


21

अधिकांश यूनियनों में, lsएक -tविकल्प है। manमेरे डेबियन बॉक्स के पेज से:

संशोधन समय से -t तरह

निम्नलिखित कमांड आज़माएं:

$ ls -lt


मुझे इसकी पुनरावृत्ति की आवश्यकता है, क्षमा करें
लांसबैन्स

+ ls -lt पूर्ण निर्देशिका को सूचीबद्ध करेगा, अगर इसमें 1 फ़ाइल बदलती है।
लांसबाइनेस

14

क्या वह पाठ फ़ाइल है जिसे आप क्रमबद्ध करना चाह रहे हैं, या क्या आप आज तक कोई निर्देशिका सूची देखने की कोशिश कर रहे हैं? बाद के लिए, ध्वज का उपयोग करें-tls । पूर्व के लिए, विशेष रूप से -Mध्वज को GNU सॉर्ट में देखें, जो तीन-अक्षर महीने के नाम संक्षिप्त रूप से सॉर्ट करता है। 3, 1, 2 और 4 वें कॉलम द्वारा निम्नलिखित कमांड प्रकार, एक महीने के नाम के रूप में दूसरी तरह की कुंजी का इलाज करता है।

sort -k 3 -k 1M -k2 -k4 in.txt

हमेशा जापानी / आईएसओ शैली की तारीखों का उपयोग करने पर विचार करें, हमेशा YYYY-MM-DD-HH-MM-SS (यानी सबसे महत्वपूर्ण, निरंतर स्तंभ चौड़ाई)। तिथि के अनुसार छंटनी इस तरह एक लेक्सोग्राफिक सॉर्ट के समान है।


उस तारीख प्रारूप सुझाव पर अग्रणी शून्य को मत भूलना। यह वह प्रारूप है जिसका उपयोग मैं जब भी स्ट्रिंग को स्वयं प्रारूपित करता हूं।
चोरी

@stolenmoment यदि आप रिक्त स्थान नहीं रखते हैं, तो आप शून्य के बजाय रिक्त स्थान का उपयोग कर सकते हैं, महत्वपूर्ण बिंदु एक स्थिर स्तंभ है। 2018  5 26काम करता है बस के रूप में अच्छी तरह से 2018 05 26(जब तक आप मार्कअप के माध्यम से नहीं जाते हैं जो लगातार रिक्त स्थान को मर्ज करता है ...), जो अच्छी तरह से काम नहीं करता है 2018 5 26
गिल्स एसओ- बुराई को रोकें '26

हाँ, मैं स्पष्ट रूप से फ़ाइल नाम में रिक्त स्थान से बचता हूं, मुझे यकीन है कि आप अनुमान लगा सकते हैं कि क्यों।
चोरी करने वाला

3

मुझे यकीन नहीं है कि lsजब मूल प्रश्न पूछा गया था तो कार्यक्षमता कमांड में थी, लेकिन अब आप विकल्प का उपयोग कर सकते हैं --full-time

जैसे,

ls -t --full-time 

तल पर सबसे पुराने समय के साथ हल होगा; या यदि आप उपयोग करते हैं:

ls -tr --full-time

तब यह आदेश को उलट देगा।


सवाल यह है कि संशोधन तिथि / समय द्वारा फाइल को कैसे छांटा जाए। -tविकल्प पूरी तरह से है कि सवाल का जवाब; --full-timeवास्तव में प्रासंगिक नहीं है।
जी-मैन का कहना है 'पुनः स्थापित मोनिका'

एकमात्र चीज -t विकल्प आपको छह महीने के भीतर संशोधित फ़ाइलों के लिए वर्ष नहीं देता है, जहां - रूप-समय आपको बिल्कुल वही देता है। आप अपनी पसंद के अनुसार तिथि प्रारूप को प्रारूपित करने के लिए समय-शैली का भी उपयोग कर सकते हैं। उदा। ls-exr - समय-शैली +% Y-% m-% d \% H:% M:% S
बेवन थॉमस

मुझे यकीन नहीं है कि आपकी बात क्या है।  ls -tआपको मोड और फ़ाइलों का स्वामी, होस्ट नाम और ऑपरेटिंग सिस्टम संस्करण, या चीन में चाय की कीमत या तो नहीं देता है।  ls -tसंशोधन तिथि को भी प्रदर्शित नहीं करता है। लेकिन सवाल फ़ाइल जानकारी प्रदर्शित करने के बारे में नहीं है, यह संशोधन तिथि द्वारा फ़ाइलों को क्रमबद्ध करने के बारे में है। आप प्रश्न के उत्तर में योगदान नहीं दे रहे हैं; आप अच्छी-से-अच्छी पूरक जानकारी जोड़ रहे हैं। जब आप 50 प्रतिष्ठा अंक प्राप्त करते हैं , तो आप टिप्पणी के रूप में उस तरह की जानकारी पोस्ट कर सकते हैं ।
जी-मैन ने कहा 'मोनिका बहाल'

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