如何将函数的输出存储到数组中

genip26057

数据集文件名“ demo.txt”

ID|SAL|COL|PER|TAG|GER
1"|"1.11"|"2.22"|"1.1"|"2.2"|D"
2"|"1.234"|"3.234"|"2.2222"|"2.34"|"B"
3"|"1.234"|"35.23"|"3.2"|"2.34"|"A"

我创建了一个将自动计算小数列总和的函数,以下是我在main.sh脚本中调用该函数的函数

demo()
{
FILE_NAME="$1"
COLUMN_NAME="$2"

alpha=( $(awk -F"|" 'NR==1{for(i=1;i<=NF;i++){if ($i ~ /'$COLUMN_NAME'/){print i;}}}' $FILE_NAME) )

for each in "${alpha[@]}"
do
   awk -F'"?\\|"?' '{T+=$('$each')} END { printf "%.2f\n", T }' $FILE_NAME  
done

}

脚本:main.sh

#main.sh脚本中调用的功能

demo demo.txt 'SAL|COL|PER|TAG'

问题是我如何将输出放入数组

以下是我需要存储到array1中的输出

3.57 40.68 6.52 6.88

第二个数组是从另一个程序获取的下面的输出

array2={3.57 40.68 6.52 6.88}

**以便我可以将array1与array 2的位置值进行匹配

array1[0] with array2[0] 
array1[1] with array2[1] 
array1[2] with array2[2] 
array1[3] with array2[3] 

如果所有成功都应将成功状态显示为“是”

我有部分起作用的解决方案...帮助我提供一些解决方案, 以便我可以将数组的每个值存储到array1

FILE_NAME="$1"
COLUMN_NAME="$2"

alpha=( $(awk -F"|" 'NR==1{for(i=1;i<=NF;i++){if ($i ~ /'$COLUMN_NAME'/){print i;}}}' $FILE_NAME) )

declare -a array=();

for each in "${alpha[@]}"
do
        #var=($(awk -F'"?\\|"?' '{T+=$('$each')} END { printf "%.2f\n", T }' $FILE_NAME))
        mapfile -t array <<< "$(awk -F'"?\\|"?' '{T+=$('$each')} END { printf "%.2f\n", T }' $FILE_NAME)"
        #awk -F'"?\\|"?' '{T+=$('$each')} END { printf "%.2f\n", T }' $FILE_NAME
done

echo "${array[@]}"
尼克克拉布特里

部分工作解决方案的问题是,每次将一列总和中的单个值存储到整个数组中,这将删除先前的值。

解决方案是将值一个接一个地填充到数组中,而不是使用mapfile命令,该命令要求所有值都在一个输入行上:

FILE_NAME="$1"
COLUMN_NAME="$2"

alpha=( $(awk -F"|" 'NR==1{for(i=1;i<=NF;i++){if ($i ~ /'$COLUMN_NAME'/){print i;}}}' $FILE_NAME) )

declare -a array=()

n=0

for each in "${alpha[@]}"
do
        array[n]="$(awk -F'"?\\|"?' '{T+=$('$each')} END { printf "%.2f\n", T }' $FILE_NAME)"
        ((n=n+1))
done

echo "${array[@]}"

运行此命令可获得:

$ bash test.sh demo.txt 'SAL|COL|PER|TAG'
3.58 40.68 6.52 6.88

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何将函数的输出存储到 Kotlin 中的数组中

来自分类Dev

如何将函数输出插入到另一个函数的数组中

来自分类Dev

如何将JSON输出转换为c#对象并将其存储到数组中

来自分类Dev

如何将“ bc”的输出存储到变量中?

来自分类Dev

如何将输出存储到r中的for循环中

来自分类Dev

如何将程序的输出存储到文件中?

来自分类Dev

如何将Shell脚本的输出存储到变量中

来自分类Dev

如何将输出存储到矩阵列表中

来自分类Dev

如何将Javascript输出存储到表单中

来自分类Java

如何将arrayList存储到Java中的数组中?

来自分类Java

如何将方法中的值存储到数组中?

来自分类Dev

如何将数组输入到函数数组中

来自分类Dev

如何将函数的结果存储到变量中?

来自分类Dev

如何将数组存储到dynamoDB表中

来自分类Dev

如何将字典数组存储到类变量中?

来自分类Dev

如何将数组数据存储到结构中?

来自分类Dev

如何将数据存储到AngularJS数组中

来自分类Dev

如何将javascript数组或JSON存储到php中

来自分类Dev

如何将文件信息存储到数组中?

来自分类Dev

如何将Calendar类型的年份存储到数组中?

来自分类Dev

如何将先前的值存储到数组中

来自分类Java

如何将数据存储在数组中,使用函数

来自分类Dev

如何将函数指针存储在数组中?

来自分类Dev

将命令的输出存储到数组中

来自分类Dev

如何将数组从函数“返回”到c中的main

来自分类Dev

如何将输出存储在向量中?

来自分类Dev

如何将窗口函数输出直接传递到 SQL 中的新窗口函数中?

来自分类Dev

如何将数组存储在MD数组中,并从函数返回该数组?

来自分类Linux

如何将Linux命令输出存储到puppet中的变量中

Related 相关文章

热门标签

归档