Đây là một giải pháp với 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] }'
Về cơ bản những gì xảy ra là chúng tôi tìm thấy tất cả các tệp thông thường và in thời gian sửa đổi của chúng theo quy định của %T
định dạng, sau đó awk
tiếp quản và đếm từng dòng bằng cách sử dụng mảng liên kết. các END{}
công dụng tuyên bố for
vòng lặp để đi qua tất cả các yếu tố trong mảng liên quan, và in key + array [key] nội dung (mà là ngày + count).
Bạn có thể muốn sử dụng sort
để sắp xếp đầu ra, đặc biệt sort -k 1
dựa trên cột 1 (đó là ngày), nhưng đó là tùy chọn. Cũng -maxdepth 1
sẽ kiểm tra các tập tin chỉ trong thư mục hiện tại . Nếu bạn cũng muốn tìm tệp trong thư mục con, hãy xóa -maxdepth 1
phần.
Sản lượng mẫu
$ 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
và109294