![获取每个文件每行的权重总和](https://linux22.com/image/114224/%E8%8E%B7%E5%8F%96%E6%AF%8F%E4%B8%AA%E6%96%87%E4%BB%B6%E6%AF%8F%E8%A1%8C%E7%9A%84%E6%9D%83%E9%87%8D%E6%80%BB%E5%92%8C.png)
我使用 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。