【发布时间】:2019-08-01 12:41:20
【问题描述】:
我知道上述问题的措辞很不清楚,但我会尽力解释。我有一组数据,其中包含不同的酒店 id 值和每个酒店的一组评级。这是我现在的代码:
cd "$1" || exit 1
grep "<Overall>" hotel_*.dat | sed 's/\.dat:<Overall>/ /'
(代码基本上是从文件中提取数据并以更整洁的格式输出)
这是代码的输出: terminal output sample
如图所示,我的数据由两列组成。我想要做的是对每个酒店 ID 的第 2 列中的数据取平均值,所以基本上得到一个输出:(酒店 ID)(平均)。每个酒店 id 应该有自己的平均值。
我尝试做的是:
cd "$1" || exit 1
grep "<Overall>" hotel_*.dat | sed 's/\.dat:<Overall>/ /' | awk '{SUM+= $2} END {print SUM/NR}'
这会取所有数据的平均值,并以 (hotel id) (average) 格式为每个酒店 id 输出一个数字而不是平均值。
希望我的解释足够。
【问题讨论】:
标签: bash shell unix terminal command