我使用 SQR 创建了一个包含多行数据的逗号分隔 .csv 文件。每行有四组不同的数据。一组是货币值(value)。我正在尝试使用 Linux 脚本从 .csv 文件中提取每一行的货币值(value),并获取所有行货币值(value)数据的总货币值(value)。我的问题是,每个货币值(value)的起点根据货币金额之前写入的信息而变化。此外,每笔金额的终点也各不相同。我不知道如何处理这个问题。我需要帮助编写一些代码,这些代码只能提取每行的货币值并将其与下一行相加,依此类推。以下是 .csv 文件外观的示例。第一列是业务单位,第二列是项目 ID,第三列是货币值,第四列是项目审批者姓名。你能帮忙吗?
EDJ,50007556,587850,"Project Approver"
EDJ,50007557,348462.25,"Project Approver"
CAN,50002657,8245.75,"Project Approver"
EJTC,00000010,198746.30,"Project Approver"
最佳答案
您可以使用cut
在分隔文件中选择一列:
cut -f3 -d, FILE # comma as the delimiter, third column
为了对这些值求和,我将使用 Perl:
cut -f3 -d, FILE | perl -lne '$s += $_ }{ print $s'
但是,Perl 本身可以处理列,因此不需要 cut
:
perl -F, -ane '$s += $F[2] }{ print $s' FILE
关于linux - 如何从不同的起点向 csv 文件的多行添加特定值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16695134/