【发布时间】:2020-06-11 17:15:50
【问题描述】:
我有两个文件 file1.csv 和 file2.csv
file1.csv
Test1;Test3
Test1;Test3
Test1;Test3
Test1;Test3
Test1;Test3
Test1;Test3
Test1;Test3
Test7;Test4
Test7;Test4
Test7;Test4
Test7;Test4
Test7;Test4
Test7;Test4
Test7;Test4
file2.csv
Test1;Test3;12345
Test1;Test3;12345
Test1;Test3;12345
Test1;Test3;12345
Test1;Test3;12345
Test1;Test3;12345
Test1;Test3;12345
Test7;Test4;12346
Test7;Test4;12346
Test7;Test4;12346
Test7;Test4;12346
Test7;Test4;12346
Test7;Test4;12346
Test7;Test4;12346
我正在尝试循环 file1.csv 并与 file2.csv 中的相同匹配,因为它会匹配它应该获取输出并将其打印在一个新文件中 因此,如果两个文件中的 column1 和 column2 相同,则打印出一个新文件,但如果匹配,则将其限制为每个 3 行。
awk 'NR==FNR{a[$1,$2];next}($1,$2 in a){print $0}' identicalValue.csv Originalvalues.csv | head -3
输出应该是:
Test1;Test3;12345
Test1;Test3;12345
Test1;Test3;12345
Test7;Test4;12346
Test7;Test4;12346
Test7;Test4;12346
自文件1.csv
Test1;Test3
Test1;Test3
Test1;Test3
Test1;Test3
Test1;Test3
Test1;Test3
Test1;Test3
Test7;Test4
Test7;Test4
Test7;Test4
Test7;Test4
Test7;Test4
Test7;Test4
Test7;Test4
等于 file2.csv
Test1;Test3;12345
Test1;Test3;12345
Test1;Test3;12345
Test1;Test3;12345
Test1;Test3;12345
Test1;Test3;12345
Test1;Test3;12345
Test7;Test4;12346
Test7;Test4;12346
Test7;Test4;12346
Test7;Test4;12346
Test7;Test4;12346
Test7;Test4;12346
Test7;Test4;12346
在第 1 列第 2 列中,它应该只打印出 file2.csv 中第 1 列和第 2 列中每个匹配项的 3 个值
【问题讨论】:
-
在示例中,您显示所有行都匹配?你能举一个不匹配的例子吗? “每场比赛 3 行”是什么意思?你能根据你提供的输入显示你想要得到的输出吗?
标签: awk