我有两个 CSV 文件,我需要计算每一行 File1 和 File2 中第 8 列的总和。这两个 CSV 文件各有 24 行,为了简化内容,我使用以下方法提取了每个 CSV 文件的第 8 行:
awk -F, '{ print $8 }' >> FILE1
awk -F, '{ print $8 }' >> FILE2
现在,我有以下格式的 2 个文件数据:
文件1
1
2
3
4
文件2
2
3
4
5
我怎样才能以这样的方式进行计算
File1.Col1 + File2.Col1 = File3.Col1
File1.Col2 + File2.Col2 = File3.Col2
File1.Col3 + File2.Col3 = File3.Col3
.
.
.
导致:
文件3
3
5
7
9
等等使用 Bash Shell 脚本,因为我的其余处理都是以相同的方式完成的。
答案1
paste File1 File2 | awk '{ print $1 + $2; }' > File3
答案2
为了避免中间文件,请使用:
paste <( awk -F, '{ print $8 }' original_file1 ) <( awk -F, '{ print $8 }' original_file2 ) | awk '{print $1+$2}' > file3
答案3
如果两个字段都在 24 个字段中的第 8 列
paste originalfile1 originalfile2 | awk '{print $8+$32 ; }' > file3
答案4
使用numsum
和paste
:
paste -d ' ' File[12] | numsum -r > File3
或者如果数据文件1和数据文件2是多列文件文件1和文件2被提取:
paste -d ' ' <(cut -f 8 DataFile1) <(cut -f 8 DataFile2) | numsum -r > File3