中位数使用移动 window bash 脚本

Median using mobile window bash script

我需要创建一个 txt 文件,其中包含变化的中值列表 如果我有这样的文件:

  1. 1
  2. 2
  3. 35
  4. 40
  5. 50

我想要这样的输出

  1. 1
  2. 1.5
  3. 2
  4. 18.5
  5. 35

我当时尝试从我的输入文件中选择一个数字然后使用排序但我没有走得太远.. 我希望我说清楚了,谢谢!

您可以使用 awk 来实现这一点。例如,当您将数据保存在名为 in.txt:

的文件中时
 awk '{c[NR]=; asort(c); if (NR%2) {print c[(NR+1)/2]} else {print (c[(NR/2)]+c[(NR/2)+1]) / 2.0}}' < in.txt

输出结果

1
1.5
2
18.5
35