我正在尝试创建一个 bash 脚本来计算文本文件的行和列的平均值和中位数。我有平均和中值工作的函数,但是我正在尝试格式化行的输出(列格式很好)。
这就是我想要的:
Averages: Medians:
1 1
5 5
7 7
5 6
3 3
6 6
但是我的代码输出当前是这样做的:
Averages: Medians:
1
5
7
5
3
6
1
5
7
6
3
6
我目前拥有的代码是:
if [[ $1 == -r* ]]
then
echo "Averages: Medians"
avg_nums $INPUT_FILE #calls average function on the file
find_median $INPUT_FILE #calls median function
elif...
#block of code for columns which works correctly.
fi
我尝试过的另一件事(我的老师建议的)是将平均值和中位数的值存储到临时变量中,然后在准备好时将其全部打印出来。它也不起作用。我为此所做的是:
#average function
tempAvg+="$avg" #append the new value of average to a global var
.
.
#median function
tempMed+="${arr[$medIndex]}" #append the new value of median to a global var
然后在下面调用它
if [[ $1 == -r* ]]
then
echo "Averages: Medians"
printf "%s\t%s\n" "$tempAvg" "$tempMed"
elif...
#block of code for columns which works correctly.
fi
其输出为:
Averages: Medians:
157536 157636
很明显我尝试过的方法都不起作用。我也是 bash 脚本新手,所以你知道。有人对如何让它发挥作用有任何建议吗?我是否以错误的方式处理这个问题?谢谢。
编辑:我的输入文件如下(用制表符分隔)
1 1 1 1 1
9 3 4 5 5
6 7 8 9 7
3 6 8 9 7
3 4 2 1 4
6 4 4 7 7
最佳答案
您可以使用粘贴
paste <(avg_nums ...) <(find_medians ...) | sed '1i\Averages:\tMedians:'
关于bash - 如何在两列中分别打印两个函数的输出 - Bash 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33181533/