连接不同文件中的列,同时跳过空白行

时间:2017-07-20 16:29:11

标签: linux awk

我知道可能可以使用awk执行此操作,但我不知道该怎么做。

假设我有以下2个制表符分隔文件,其中只有空行仅包含\n

文件1:

A 1 4
B 2 5
C 3 6

D 7 10
E 8 11
A 9 12

file2的:

E 13 16
F 14 17
G 15 18

H 19 22
I 20 23
J 21 24

我想生成一个新文件,该文件对应于文件1中前两列与文件2中第三列的连接,然后是文件1中的第三列:

最终档案:

A 1 16 4
B 2 17 5
C 3 18 6

D 7 22 10
E 8 23 11
A 9 24 12

请注意,在最终文件中,重要的是空白行应保持空白,并且不应在其中插入任何标签。

2 个答案:

答案 0 :(得分:1)

简单 粘贴 + awk 组合:

VAR1=$(pwd)

输出:

paste file1 file2 | awk '!NF{ print "" }NF{ print $1,$2,$6,$3 }'

答案 1 :(得分:1)

awk 'NR==FNR{a[NR]=$3;next} NF{$3=a[FNR] OFS $3} 1' file2 file1