【发布时间】:2012-05-02 23:36:57
【问题描述】:
我在一个目录中有文件;它们使用 YYYY_MM_DD 命名:
-rw-r--r-- 1 root root 497186 Apr 21 13:17 2012_03_25
-rw-r--r-- 1 root root 490558 Apr 21 13:17 2012_03_26
-rw-r--r-- 1 root root 488797 Apr 21 13:17 2012_03_27
-rw-r--r-- 1 root root 316290 Apr 21 13:17 2012_03_28
-rw-r--r-- 1 root root 490081 Apr 21 13:17 2012_03_29
-rw-r--r-- 1 root root 486621 Apr 21 13:17 2012_03_30
-rw-r--r-- 1 root root 490904 Apr 21 13:17 2012_03_31
-rw-r--r-- 1 root root 491788 Apr 21 13:17 2012_04_01
-rw-r--r-- 1 root root 488630 Apr 21 13:17 2012_04_02
文件中的第一列是一个数字,我使用以下awk 命令取第一列的平均值。
awk -F, '{ x += $1 } END { print x/NR }' MyFile
使用相同的命令,我可以将两个文件传递给 awk 以获得两个文件作为一个整体的总平均值。
awk -F, '{ x += $1 } END { print x/NR }' File1 File2
我想做的是这个……
我想获取我目录中的所有文件,并每月对它们进行分组,然后将当月的所有文件传递给 awk 命令。
因此,根据相同的数据,3 月份有 7 个文件,我希望所有 7 个文件都传递给我的 awk 命令,如下所示:
awk -F, '{ x += $1 } END { print x/NR }' File1 File2 File3 File4 File5 File6 File7
那么对于四月的系列也是如此。
【问题讨论】:
-
您将如何决定应该处理哪些月份?会不会是类似
monthly_stats 2012-03 2012-04的命令调用?或者您是否需要扫描目录中的所有文件以查看代表的月份以便处理所有文件?