Awk合并2个文件中的字段

Awk合并2个文件中的字段,awk,Awk,我想合并2个文件来合并每个文件中的一些字段 文件1: 24sessions|!24sessions 27upng|!upng 2dehands.be|!2dehands 2manc|!uom 2ememain.be|!2ememain 文件2: Research|Academic|!uoftlib RRRR|AAAAAA|!uom Research|Academic|!upng Research|Academic|!ur 我尝试过此Awk,但阵列构建不正确: awk ' BEGIN{ FS=

我想合并2个文件来合并每个文件中的一些字段

文件1:

24sessions|!24sessions
27upng|!upng
2dehands.be|!2dehands
2manc|!uom
2ememain.be|!2ememain
文件2:

Research|Academic|!uoftlib
RRRR|AAAAAA|!uom
Research|Academic|!upng
Research|Academic|!ur
我尝试过此Awk,但阵列构建不正确:

awk ' BEGIN{ FS=OFS="|" } NR==FNR{check[$0];next} { $3 in check; print $0, check[$0] } ' file1.txt file2.txt  >out1.txt
这是所需的输出:

输出1:


请注意,最后两个字段之间的分隔符是“uuu”而不是“|”

只是修改了一点您自己的命令:

awk ' BEGIN{ FS=OFS="|" } NR==FNR{check[$2]=$1;next}$3 in check{print $0 "_" check[$3] } ' file1.txt file2.txt > out1.txt

怎么了?您没有将第一个文件的第一列存储在
check
数组中,并且在插入和检索值时使用了错误的键。

只需修改一点您自己的命令:

awk ' BEGIN{ FS=OFS="|" } NR==FNR{check[$2]=$1;next}$3 in check{print $0 "_" check[$3] } ' file1.txt file2.txt > out1.txt

怎么了?您没有将第一个文件的第一列存储在
check
数组中,并且在插入和检索值时使用了错误的键。

OP中修复的两个文件中没有任何字符串
Tech
Startups
。谢谢。修复的两个文件中都没有字符串
Tech
Startups
在作品中。谢谢。