私はAIXを使用しており、過去30日間にディレクトリーに生成されたファイルの総数を確認する必要があります。私はこの30日間に生成されたすべてをファイルに正常に抽出し、AWKコマンドを使用して各ファイルの重みを含む他のファイルを正常に生成しました。とにかく、各行の重みを含むファイルがすでに存在していますが、全体の重みを取得するには各行を追加する必要がありますが、どうすればよいかわかりません。明確に言えば、約2,000,000行があります。ありがとう
答え1
各行にリストされているファイルサイズの合計を取得するにはfile.list
(ファイル名に改行文字が含まれていないと仮定):
perl -lne '$sum+=-s; END{print $sum}' file.list
シンボリックリンクの場合、シンボリックリンクターゲットのサイズを計算します。
これは見かけのサイズであり、通常はディスク使用量とは異なります。
答え2
このコマンドは、過去30日間に変更されたファイルサイズの合計を表示します。
find . -mtime -30 -exec stat -c %s {} \; | awk '{SUM+=$1}END{print SUM}'
編集:ファイルの合計
答え3
このコマンドを使用すると機能します。
awk '{suma=0; for (i=1; i<=NF; i++) suma=$i;sumatotal=sumatotal+suma; print sumatotal}' COT2
COT2はファイル名です。合計サイズをKB単位で取得し、この数値をGBに変換します。