小编sj3*_*j34的帖子

使用 awk 并遍历目录中的文件

我有一个评论文件夹,其中包含不同的文件,例如 hotel_72572.dat

每个文件都包含许多结构如下的评论:

...
<Overall>4
...
Run Code Online (Sandbox Code Playgroud)

我的目标是使用 averagereviews.sh 脚本计算每个文件(酒店)的所有评论的平均值。通过执行:./averagereviews.sh path_to_reviews_folder 我应该获得这个输出:

hotel_11212.dat 3.51
hotel_2121.dat 2.62
hotel_31212.dat 2.43
...
Run Code Online (Sandbox Code Playgroud)

我的脚本是:

#!/bin/bash
cd "$1" || exit 1
for file in "$1"; do
awk 'count+=sub(/<Overall>/, ""){sum+=$0}END{print sum/count}' file;
done
Run Code Online (Sandbox Code Playgroud)

问题是它不能将文件识别为目录,如果我把hotel_*.dat 放在reviews_folder 中,它会计算所有现有文件的平均值,而不是每个文件的平均值。

bash awk

2
推荐指数
1
解决办法
1万
查看次数

标签 统计

awk ×1

bash ×1