0
我正在写一个scipt,它将接受它将完成这项工作的文件夹的参数。目的是计算平均评论数量并在文件名称旁边打印结果。我只写了一个文件的脚本,它的工作原理没问题,但我找不到任何解决方案在多个文件上执行它。我应该得到一个像这样的输出;Linux Bash脚本,用于计算多个文件的平均值
% ./averagereviews.sh path_to_folder
hotel_11212 3.51
hotel_2121 2.62
hotel_31212 2.43
...
我完成这个任务只有一个酒店和代码是这样的;
grep "<Overall>" $1 | sed 's/<Overall>//g'| awk '{SUM += $1} END {print SUM/NR}'
这只是搜索词“”的文件中,并得到其旁边的数字,然后将这些数字和划分与NR的总和找到平均值。
当我运行它的输出是给定的酒店
./averagereviews.sh hotel_190158.dat
4.00578
平均值,但我应该印刷酒店的名字这样对多个.dat文件的文件夹。我怎样才能做到这一点 ?
但我应该在文件夹之外实现它。例如,我现在位于我的home文件夹中,包含所有数据的文件夹位于data_folder中,而且我的脚本位于home文件夹中,与data_folder的级别相同。另外我的脚本应该将文件夹名称作为参数。因此,当我写入./averagereviews.sh文件夹名称时,应该为该文件夹中的每个数据文件找到含义。 –
然后我想你有一个找到“数据文件”文件的方法。像“他们的名字是数据_ ###。txt”。我更新了我的答案,将您的意见纳入考虑范围。 – fzd
其实我不明白你怎么可以cat data_files。它是一个目录,所以它会给你错误提供一个目录。也许是我的错误,我无法正确解释。现在我在一个名为work的文件中,我有我的脚本和一个名为“data_files”的文件夹。当我运行我的脚本时,它应该获取所有数据文件(例如dataFile1.dat),并使用数据文件中的信息取所有数据文件的平均值。平均值为每个数据。 –