如何使用模式连接2个文件

时间:2015-04-07 13:32:16

标签: join awk

是否可以使用awk?

基于第一列模式连接这些文件

由于

文件1

qwex-123d-947774-sm-shebha
qwex-123d-947774-sm-shebhb
qwex-123d-947774-sm-shebhd
qwex-23d-947774-sm-shebha
qwex-23d-947774-sm-shebhb
qwex-235d-947774-sm-shebhd

file2的

qwex-235d none1
qwex-23d none2

输出

qwex-23d none2 qwex-23d-947774-sm-shebha
qwex-23d none2 qwex-23d-947774-sm-shebhb
qwex-235d none1 qwex-235d-947774-sm-shebhd

1 个答案:

答案 0 :(得分:2)

这个awk单行应该这样做:

awk 'NR==FNR{a[$0];next}{for(x in a)if($0~"^"x){print x, $0;break}}' file2 file1

请注意,如果file2中的行包含在regex中具有特殊含义的特殊字符,则该行会有风险。比如qwex$-23d

如果是这种情况,则不应使用~,而应该逐字地比较字符串。