在文件中逐行获取所选单元格的平均值?
Get the average of the selected cells line by line in a file?
我有一个包含多个列的文件。我想 select 几个并获得一行中 selected 单元格的平均值,并将整个平均值输出为列。
例如:
Month Low.temp Max.temp Pressure Wind Rain
JAN 17 36 120 5 0
FEB 10 34 110 15 3
MAR 13 30 115 25 5
APR 14 33 105 10 4
.......
如何获取平均温度 (Avg.temp) 和湿度 (Hum) 作为列?
Avg.temp = (Low.temp+Max.temp)/2
Hum = Wind * Rain
获得Avg.temp
Month Low.temp Max.temp Pressure Wind Rain Avg.temp Hum
JAN 17 36 120 5 0 26.5 0
FEB 10 34 110 15 3 22 45
MAR 13 30 115 25 5 21.5 125
APR 14 33 105 10 4 23.5 40
.......
我不想在 excel 中这样做。有什么简单的 shell 命令可以做到这一点吗?
我会这样使用 awk
:
awk 'NR==1 {print [=10=], "Avg.temp", "Hum"; next} {$(NF+1)=(+)/2; $(NF+1)=*}1' file
或:
awk 'NR==1 {print [=11=], "Avg.temp", "Hum"; next} {print [=11=], (+)/2, *}' file
这包括进行计算并将其附加到原始值。
让我们看看它的实际效果,通过管道传输到 column -t
以获得不错的输出:
$ awk 'NR==1 {print [=12=], "Avg.temp", "Hum"; next} {$(NF+1)=(+)/2; $(NF+1)=*}1' file | column -t
Month Low.temp Max.temp Pressure Wind Rain Avg.temp Hum
JAN 17 36 120 5 0 26.5 0
FEB 10 34 110 15 3 22 45
MAR 13 30 115 25 5 21.5 125
APR 14 33 105 10 4 23.5 40
我有一个包含多个列的文件。我想 select 几个并获得一行中 selected 单元格的平均值,并将整个平均值输出为列。
例如:
Month Low.temp Max.temp Pressure Wind Rain
JAN 17 36 120 5 0
FEB 10 34 110 15 3
MAR 13 30 115 25 5
APR 14 33 105 10 4
.......
如何获取平均温度 (Avg.temp) 和湿度 (Hum) 作为列?
Avg.temp = (Low.temp+Max.temp)/2
Hum = Wind * Rain
获得Avg.temp
Month Low.temp Max.temp Pressure Wind Rain Avg.temp Hum
JAN 17 36 120 5 0 26.5 0
FEB 10 34 110 15 3 22 45
MAR 13 30 115 25 5 21.5 125
APR 14 33 105 10 4 23.5 40
.......
我不想在 excel 中这样做。有什么简单的 shell 命令可以做到这一点吗?
我会这样使用 awk
:
awk 'NR==1 {print [=10=], "Avg.temp", "Hum"; next} {$(NF+1)=(+)/2; $(NF+1)=*}1' file
或:
awk 'NR==1 {print [=11=], "Avg.temp", "Hum"; next} {print [=11=], (+)/2, *}' file
这包括进行计算并将其附加到原始值。
让我们看看它的实际效果,通过管道传输到 column -t
以获得不错的输出:
$ awk 'NR==1 {print [=12=], "Avg.temp", "Hum"; next} {$(NF+1)=(+)/2; $(NF+1)=*}1' file | column -t
Month Low.temp Max.temp Pressure Wind Rain Avg.temp Hum
JAN 17 36 120 5 0 26.5 0
FEB 10 34 110 15 3 22 45
MAR 13 30 115 25 5 21.5 125
APR 14 33 105 10 4 23.5 40