如何查找连续的每个数字并将每个行存储在单独的每行变量中

use*_*649 0 unix bash shell aix awk

我刚开始学习shell脚本.

我试图从一个结构如下的文件中读取:

harddrive1 10 20 30 40
harddrive2 20 30 40 50
harddrive3 30 40 50 60
Run Code Online (Sandbox Code Playgroud)

我想以某种方式将每行的平均值保存在一个单独的变量中......只有3行,5列.所以我的输出是:

hd_AVG1=20
hd_AVG2=35
hd_AVG3=45
Run Code Online (Sandbox Code Playgroud)

我怎么能做到这一点?

编辑:我需要将它保存在DIFFERENT变量中,以便我可以调用变量...例如

if [[ $hd_AVG1 -eq 20 ]];
    then 
    do something...
elif [[ $hd_AVG2 -gt 40 ]];
    then
    do something...
fi
Run Code Online (Sandbox Code Playgroud)

Gur*_*uru 6

$ awk '{print $1"="($2+$3+$4+$5)/4}' file
harddrive1=25
harddrive2=35
harddrive3=45
Run Code Online (Sandbox Code Playgroud)

  • 您没有说您需要填充SHELL变量.您正在填充awk,perl等变量的大多数解决方案或只打印您想要stdout的内容.你可以在awk命令之前粘贴"eval":eval awk'...'来设置名为hd1等的shell变量. (2认同)