使用移动窗口bash脚本的中位数

时间:2015-05-06 11:16:51

标签: linux bash windows-mobile median

我需要创建一个包含更改中值的列表的文件txt 如果我有一个像这样的文件:

  1. 1
  2. 2
  3. 35
  4. 40
  5. 50
  6. 我想要输出

    1. 1
    2. 1.5
    3. 2
    4. 18.5
    5. 35
    6. 我尝试从我的输入文件中取出一个号码,然后使用排序,但我没有走多远.. 我希望自己清楚明白,谢谢!

1 个答案:

答案 0 :(得分:2)

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

 awk '{c[NR]=$1; 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