【发布时间】:2017-01-30 22:57:50
【问题描述】:
所以我有一个如下所示的文件:
9032894 First Last 89 43 100
9423897 First Last 89 20 48
以此类推,以这种格式继续。我希望得到最后三个数字的总和,(例如第一行的 89 43 100),然后使用 echo 显示这个总和。在我尝试这样做时,我只是将整个第一列存储在一个变量中,如下代码所示:
first=$(echo $INT | cut -d" " -f4 $1)
将获取文件中的整个第一列并将其存储在“first”中。我将如何遍历并总结每一行,而不是按列? (我已经知道如何使用 awk 来做到这一点,我正在尝试使用 bash 进行另一种编码方式)?到目前为止,我的完整代码(甚至还没有接近工作)是:
#!/bin/bash
filename=$1
while read -a rows
do
first=$(echo $INT | cut -d" " -f4 $1)
second=$(echo $INT | cut -d" " -f5 $1)
third=$(echo $INT | cut -d" " -f6 $1)
echo ${first}
echo ${second}
echo ${third}
done< $filename
提前致谢,非常感谢。
【问题讨论】:
-
什么是
$INT? -
您说要计算总和。我在脚本中没有看到任何添加。
-
为什么不
while read id firstname lastname first second third将每一列放入不同的变量中? -
你永远不会对你正在读入的
rows数组做任何事情。