,可以通过以下步骤实现:
join.awk
的文本文件,并将以下代码复制到文件中:BEGIN {
FS = ","
OFS = ","
}
NR == FNR {
key = $1 FS $2
file1[key] = $0
next
}
{
key = $1 FS $2
if (key in file1) {
print file1[key], $0
delete file1[key]
}
}
END {
for (key in file1) {
print file1[key]
}
}
file1.csv
,第二个csv文件命名为file2.csv
,并将它们与join.awk
文件放在同一个目录下。awk -f join.awk file1.csv file2.csv > output.csv
这将会将连接结果输出到名为output.csv
的文件中。
解释:
file1
数组中。file1
数组中存在,则打印第一个文件中对应的行和当前行,并从file1
数组中删除该键。file1
数组中剩余的行,即第一个文件中没有匹配的行。这样,你就可以使用awk根据多列向外连接两个csv文件,并保持第一个文件观察值的顺序。
领取专属 10元无门槛券
手把手带您无忧上云