最上位ディレクトリごとにファイルサイズをまとめる方法

最上位ディレクトリごとにファイルサイズをまとめる方法

たとえば、次のようなディレクトリ構造があります。

.
├── a
│   ├── d
│   │   ├── file1
│   │   └── file2
│   └── e
│       ├── file1
│       └── file2
└── b
    ├── d
    │   ├── file1
    │   └── file2
    └── e
        ├── file1
        └── file2

特定の日付以降、最上位ディレクトリで変更されたファイルの合計バイト数を計算したいと思います。だから私はこれをしました:

find . -type f|sed -e "s/'//g" |xargs -L1 -IA stat -c "%Y,%s,%n" A|cut -d/ -f1,2

出力は次のとおりです。

1479334332,20815368,./a
1479334362,58827575,./a
... ...
1479334383,41663496,./b
1479334413,58925879,./b
... ...

最初の列はファイル変更タイムスタンプ、2番目の列はファイルサイズ、最後の列は最上位ディレクトリです。次に、次のSQLと同様の集計を実行したいと思います。

SELECT SUM(file_size) WHERE modified_timestamp>... GROUP BY directory

私はプログラムの作成を避けるためにbashでのみこれをやりたいと思います。

答え1

私は次のことを行うための多くのツールを見つけました。

最初の2つをテストしましたが、どちらもうまくいきます。言及する価値がある唯一のことはCSVのサポートです。いいえヘッダー。qこのため、個人的にお勧めしますが、正直なところ、ほとんど同じです。

関連情報