यहाँ के साथ एक समाधान है find
+awk
find . -maxdepth 1 -type f -printf '%TY-%Tm-%Td\n' | awk '{array[$0]+=1}END{ for(val in array) print val" "array[val] }'
अनिवार्य रूप से क्या होता है कि हम सभी नियमित फाइलें ढूंढते हैं और %T
प्रारूप द्वारा निर्दिष्ट उनके संशोधन समय को प्रिंट करते हैं , और फिर awk
एसोसिएट एरे का उपयोग करके प्रत्येक पंक्ति को गिनते हैं। END{}
बयान का उपयोग करता है for
पाश संबद्ध सरणी में सभी तत्वों के माध्यम से जाना है, और कुंजी + सरणी [कुंजी] सामग्री मुद्रित (जो तिथि + गिनती है)।
आप sort
विशेष रूप sort -k 1
से कॉलम 1 (जो दिनांक) पर आधारित है , आउटपुट को व्यवस्थित करने के लिए उपयोग करना चाह सकते हैं , लेकिन यह वैकल्पिक है। इसके अलावा केवल वर्तमान फ़ोल्डर में-maxdepth 1
फ़ाइलों के लिए जाँच करेगा । यदि आप उपनिर्देशिकाओं में भी फाइल ढूंढना चाहते हैं, तो भाग को हटा दें ।-maxdepth 1
नमूना उत्पादन
$ find . -maxdepth 1 -type f -printf '%TY-%Tm-%Td\n' | awk '{array[$0]+=1}END{ for(val in array) print val" "array[val] }'
2015-09-29 1
2016-04-06 2
2016-04-07 10
2016-04-08 2
2015-11-05 2
2016-04-22 2
2016-04-23 6
2016-04-24 1
2015-11-21 2
2015-11-22 2
109294
और109294