【发布时间】:2022-01-12 00:26:00
【问题描述】:
我有输入文件(1.csv),大约有 0.5M 行,多个 CLEANUP_BC_[1-10].csv 文件大约有 1000 万行。 1.csv 每行有一个字段 f1,而 CLEANUP_BC_[1-10].csv 有 2 个字段,f1 到 f2,由 , 分隔。
我想查找 1.csv 中的所有行,其中 1.scv 的 f1 与 CLEANUP_BC_[1-10].csv 的 f1 匹配,如果其匹配项写入基于 CLEANUP_BC_[1-10].csv 文件 F2 列的输出最后一位。
猫 1.csv
15192151898
11000000012
11000000019
11000000077
12042050006
12042050053
12042050158
12042050161
12042050178
12042050198
CLEANUP_BC_1.csv
15192151898, 732539481
16133029583, 707751921
16133636489, 540841871
16476205207, 770565711
16132823434, 459659751
12363335422, 889809091
14372484755, 739320471
12368188419, 732539481
12042050161, 770565711
17807200578, 744517871
CLEANUP_BC_2.csv
12042050198, 592494702
16134492706, 739754232
12363321831, 747588192
19053343880, 432742682
12262185649, 779803212
16047157202, 888743762
19054607842, 789457272
12505168454, 138011622
14372156219, 781262852
12042050158, 765193222
脚本:
awk 'FNR==NR{
hash[$1]; next
}
{
for (i in hash) if (match($0,i)) {print; break}
}' 1.csv FS=',' CLEANUP_BC_*
预期输出:
猫 1.csv
15192151898, 732539481
12042050161, 770565711
猫 2.csv
12042050198, 592494702
12042050158, 765193222
【问题讨论】:
-
1.csv是输入文件 AND 是输出文件吗? -
文件是否包含前导空格?如果没有,请删除它们。
标签: awk