从文件中提取数字

发布于 2024-12-14 15:01:37 字数 223 浏览 0 评论 0原文

我有一个 txt 文件“ 80 50 65 100 2 35 1 ”,我需要将每个数字添加到 Var 中,甚至更好地将它们全部添加到数组中。 就像...

var1=80 var2=50

array[0]=80

。顺便说一句,后面的数字必须有效。我的意思是我需要能够 总和= $var1 +$var2 例如。 有办法做到这一点吗?谢谢你!!

I have a txt file " 80 50 65 100 2 35 1 " and i need to add each number in a Var or even better all of them in an array.
like ...

var1=80
var2=50

or

array[0]=80

.by the way the number after that must be functional . I mean i need to be able to
sum= $var1 +$var2
for example.
Is there a way to do that ? Thank you!!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

愛上了 2024-12-21 15:01:37

如果您的数字都在一行上,请使用 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

If your numbers are all on a line, use read

read -a array < numbers.txt

If they're on multiple lines you can change the end of line delimiter like this

read -d'\0' -a array < numbers.txt

And now you have an array

printf 'Number: %s\n' "${array[@]}"

Oh yeah, and summing. Lots of ways once you have an array, but how about

printf '%s + ' "${array[@]}" | xargs -I{} echo {} 0 | bc

Or do it all in one process

for n in "${array[@]}" ; do let sum+=$n ; done ; echo $sum
臻嫒无言 2024-12-21 15:01:37

在 bash 中,你可以说

array=( $(< numbers.txt) )
sum=$( IFS=+; echo "${array[*]}" | bc )

In bash, you can say

array=( $(< numbers.txt) )
sum=$( IFS=+; echo "${array[*]}" | bc )
云淡风轻 2024-12-21 15:01:37

因此,如果您有一个文件 nums.dat ,例如

80 50 65 100 2 35 1

您可以将它们读入数组

read -a MYARRAY < nums.dat

如果您有更旧的 bash 甚至 ksh 那么是这样的(抱歉不太记得了)

set -A MYARRAY $(cat nums.dat)

So if you have a file nums.dat like

80 50 65 100 2 35 1

You can read these into an array with

read -a MYARRAY < nums.dat

If you have a much older bash or even ksh then it was something like (can't remember exactly sorry)

set -A MYARRAY $(cat nums.dat)
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文