root@52b8c9922ca0:/o# ls -1 2021-10-11-aaa 2021-10-11-bbb 2021-10-11-ccc 2021-10-11-ddd 2021-10-12-aaa 2021-10-13-aaa 2021-10-14-aaa 2021-10-15-aaa 2021-10-16-aaa 2021-10-17-aaa 2021-10-18-aaa 2021-10-18-bbb 2021-10-18-ccc 2021-10-19-aaa 2021-10-19-bbb 2021-10-19-ccc 2021-10-19-ddd 2021-10-19-eee 2021-10-19-fff 2021-10-23-aaa 2021-10-30-aaa 2021-10-30-bbb 2021-10-30-ccc
こんなファイルがある時に日付ごとにファイル数を知りたい場合に使えるやつ
$ for d in $(ls); do echo ${d%-*}; done | uniq | awk '{print "echo -n " $1 " \"\"; ls " $1 "-* 2>/dev/null | wc -l";}' | bash
これを実行するとこんな感じに日付ごとにファイル数が出せます。
root@52b8c9922ca0:/o# for d in $(ls); do echo ${d%-*}; done | uniq | awk '{print "echo -n " $1 " \"\"; ls " $1 "-* 2>/dev/null | wc -l";}' | bash 2021-10-11 4 2021-10-12 1 2021-10-13 1 2021-10-14 1 2021-10-15 1 2021-10-16 1 2021-10-17 1 2021-10-18 3 2021-10-19 6 2021-10-23 1 2021-10-30 3
追記
buty4649さんにcutでもできるということを教えてもらった。こっちの方がとてもシンプルでわかりやすい。。!!
ls -1 | cut -d- -f1,2,3 | sort | uniq -c | sort -nr