gpt4 book ai didi

awk - 匹配单独文件中的数据

转载 作者:行者123 更新时间:2023-12-05 01:06:08 24 4
gpt4 key购买 nike

我似乎遇到了几个此类问题,并且确实尝试过自己解决这个问题,但没有成功。

我有两个数据文件;我想比较它们的第一个字段,并在输出文件中第一个文件的匹配条目旁边打印第二个文件中的行。保持文件 1 中的列表顺序很重要,包括没有匹配的行。这些文件是制表符分隔的值,但我可以根据需要更改它们(尽管数据中使用了逗号)。

文件1.txt

37600
39219
32887
01262
69241
00361
34180
42385
69245

文件2.txt
37600       GEAR PUMP   1
32887 MOTOR, 480V 1
34180 BRACKET 2
00361 WASHER 4
42385 SCREW 8

所需的输出文件
37600       GEAR PUMP   1
39219
32887 MOTOR, 480V 1
01262
69241
00361 WASHER 4
34180 BRACKET 2
42385 SCREW 8
69245

到目前为止,这是我最大的努力,但结果是一个空文件。
awk NR==NFR{a[$1];next}$1 in a {print $0} file1.txt file2.txt > outfile.txt

任何帮助将不胜感激。

最佳答案

你很接近,这个awk应该做。

awk 'FNR==NR {a[$1]=$0;next} a[$0] {$0=a[$0]}1' file2 file1
37600 GEAR PUMP 1
39219
32887 MOTOR, 480V 1
01262
69241
00361 WASHER 4
34180 BRACKET 2
42385 SCREW 8
69245

我店 file2$1 一起排列作为索引。
如果值在 file1在数组中找到,将其设置为 $0并全部打印出来。

您也可以这样写,以标记其列 #1应该比较:
awk 'FNR==NR {a[$1]=$0;next} a[$1] {$0=a[$1]}1' file2 file1

关于awk - 匹配单独文件中的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20563775/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com