Bash 使用.sh从外部文件中分离和添加数字

Bash 使用.sh从外部文件中分离和添加数字,bash,shell,unix,sh,ifs,Bash,Shell,Unix,Sh,Ifs,问题#1 如何使用.sh读取列并添加文件中的每个条目 示例文件: 10000:max:100:1,2:3,4 10001:jill:50:7,8:3,2 10002:fred:300:5,6:7,8 如何使用IFS=':'逐行读取带有.sh文件的文件,并添加第三部分,以便输出添加内容,例如450 $ ./myProgram myFile.txt 450 一个简单的awk单行命令就可以完成这项工作 $ awk -F: '{sum+=$3}END{print sum}' file 450 对于

问题#1

如何使用.sh读取列并添加文件中的每个条目

示例文件:

10000:max:100:1,2:3,4
10001:jill:50:7,8:3,2
10002:fred:300:5,6:7,8
如何使用
IFS=':'
逐行读取带有.sh文件的文件,并添加第三部分,以便输出添加内容,例如450

$ ./myProgram myFile.txt
450


一个简单的awk单行命令就可以完成这项工作

$ awk -F: '{sum+=$3}END{print sum}' file
450

对于每一行,awk都会将第3列的值添加到变量
sum
。在末尾打印变量
sum
,将获得总计数
-F:
将字段分隔符值设置为冒号。

这很简单。尝试使用awk,如:

awk -F':' '{sum+=$3} END {print sum}' myfile.txt
这里-F是delimeter,我们说字段用冒号delimeter“:“存在于文件myfile.txt中

我们加上3美元的总价值。完成后,我们将打印sum的值。

#/usr/bin/env bash file=“$1”externalprogram“$file”$awk-F:“{sum+=$3}END{print sum}”$1
这样就可以添加我想要作为参数的文件,以便在terminal@smamorry@Avinash Raj中调用。我把我问题的第二部分作为问题的一部分而不是一条评论贴了出来。你不需要在你的脚本中把
$
放在
awk
之前,只要
awk-F:“{sum+=$3}END{print sum}”文件就可以了。谢谢@avinash Raj,我把它拿出来了。它仍然不能正确输出。再次感谢您为什么添加此
外部程序“$FILE”