我是Linux脚本的新手。我有文件夹可以说
/movies
/movies/starting_with_a/metric.txt
/movies/starting_with_b/metric.txt
metric.txt
的示例内容:
dummy_first_line
actual data = 8
我想读取所有子文件夹中的metric.txt并计算该文件夹的平均值。
我当前提取值的代码是:
for i in $(find . -name 'metric.txt');do cat "$i" | sed -n '2p'|awk '{print $NF}'
答案 0 :(得分:0)
您几乎完全正确。您只需要提供命令的输出即可:
for i in $(find . -name 'metric.txt');do cat "$i" | sed -n '2p'|awk '{print $NF}'
向AWK计算平均值:
awk '{ sum += $NF; cnt += 1 } END { printf "%.2f\n", sum/cnt }'
在这里,我使用两个AWK命令(无需执行cat
和sed
)来完成此操作:
for i in $(find . -name 'metric.txt'); do
awk 'NR == 2 { print $NF }' "$i";
done | awk '{ sum += $NF; cnt += 1 } END { printf "%.2f\n", sum/cnt }'