এখানে 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
লুপ সংশ্লিষ্ট অ্যারের মধ্যে সব উপাদান মধ্য দিয়ে যেতে, এবং Key + অ্যারে [Key] বিষয়বস্তু প্রিন্ট (যা তারিখ + COUNT যায়)।
আপনি sort
আউটপুটটি সংগঠিত করতে ব্যবহার করতে পারেন , বিশেষত sort -k 1
কলাম 1 (যা তারিখ) এর উপর ভিত্তি করে, তবে এটি alচ্ছিক। এছাড়াও কেবল বর্তমান ফোল্ডারে-maxdepth 1
ফাইলগুলি পরীক্ষা করবে । আপনি যদি উপ-ডিরেক্টরিতেও ফাইলগুলি সন্ধান করতে চান তবে অংশটি সরিয়ে দিন remove-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