我有两个CSV文件。文件1有9861行和4列,而文件2有6037行和5列。
是文件。文件1
的链接文件2
的链接前三列分别是数年,几个月,几天。
我想在文件1中使用相同标识符在文件2中获取行,然后将其打印到文件3。
我从这里的某些帖子找到了此命令,但这仅使用一个列作为标识符:
awk -F, 'NR==FNR {a[$1]=$0;next}; $1 in a {print a[$1]; print}' file1 file2
有没有办法使用尴尬或任何简单命令来执行此操作,我可以将前三列用作标识符?
不感谢任何帮助。
只需使用更多列来使您需要的唯一性:
$ awk -F, 'NR==FNR {a[$1, $2, $3] = $0; next}
$1 SUBSEP $2 SUBSEP $3 in a' file1 file2
SUBSEP
是下标分隔符。它具有" 034"的默认值,用于分离多维数组的索引的各个部分。因此,表达式foo["A", "B"]
确实访问foo["A 34B"]
awk -F, '{k=$1 FS $2 FS $3} NR==FNR{a[k];next} k in a' file1 file2
当然没有测试,因为您没有提供任何样本输入/输出。