【发布时间】:2023-02-18 00:59:32
【问题描述】:
我有一个包含多个 csv 文本文件的目录,每个文件都有一行格式:
field1,field2,field3,560
我需要输出目录中所有文件(可以是数百或数千个文件)的第四个字段的总和。例如:
file1.txt
field1,field2,field3,560
file2.txt
field1,field2,field3,415
file3.txt
field1,field2,field3,672
输出只是:
1647
我一直在尝试一些不同的事情,最有希望的是我在此处找到的 awk 命令以回答另一个用户的问题。它并不能完全满足我的需要,而且我是一个 awk 新手,所以我不确定如何修改它以达到我的目的:
awk -F"," 'NR==FNR{a[NR]=$4;next}{print $4+a[FNR]:' file1.txt file2.txt
这会正确输出 975。
但是,如果我尝试将第 3 个文件传递给它,而不是从所有 3 个文件中添加字段 4,它会将 file1 添加到 file2,然后将 file1 添加到 file3:
awk -F"," 'NR==FNR{a[NR]=$4;next}{print $4+a[FNR]:' file1.txt file2.txt file3.txt
975
1232
任何人都可以告诉我如何修改这个 awk 语句以接受两个以上的文件,或者理想情况下因为有数千个文件要总结,一个 * 输出目录中所有文件的第四个字段的总和?
感谢您的时间和协助。
【问题讨论】:
标签: awk