我有一个txt文件“80 50 65 100 2 35 1”,我需要在Var中添加每个数字,或者甚至更好地将它们全部添加到数组中。 喜欢......
VAR1 = 80 var2 = 50
或
数组[0] = 80
。之后的数字必须是正常的。我的意思是我需要能够 sum = $ var1 + $ var2 例如。 有没有办法做到这一点 ?谢谢!!
答案 0 :(得分:4)
如果您的号码都在一行,请使用read
read -a array < numbers.txt
如果它们在多行上,您可以像这样更改行尾分隔符
read -d'\0' -a array < numbers.txt
现在你有一个数组
printf 'Number: %s\n' "${array[@]}"
噢,是的,总结。一旦你有一个数组,有很多方法,但是如何
printf '%s + ' "${array[@]}" | xargs -I{} echo {} 0 | bc
或者在一个过程中完成所有操作
for n in "${array[@]}" ; do let sum+=$n ; done ; echo $sum
答案 1 :(得分:2)
在bash中,你可以说
array=( $(< numbers.txt) )
sum=$( IFS=+; echo "${array[*]}" | bc )
答案 2 :(得分:1)
因此,如果你有一个像文件nums.dat
80 50 65 100 2 35 1
您可以使用
将这些内容读入数组read -a MYARRAY < nums.dat
如果你有一个更老的bash
甚至ksh
那么它就像(不记得确切对不起)
set -A MYARRAY $(cat nums.dat)