我有2个(非常巨大的)排序文件,如下所示:
==> date1 <==
1 A
2 A
5 A
7 A
==> date2 <==
B 2
B 4
B 5
B 5
B 6
B 8
我需要以下输出:
1 A
2 A
B 2
B 4
5 A
B 5
B 5
B 6
7 A
B 8
所以我需要根据2个不同的列合并2个文件,通过对2个文件中的行进行分类。
我尝试使用sort -m
,但据我所知,我们无法为每个文件指定不同的列。
我也尝试使用awk和FNR == NR技巧,但文件太大了。
答案 0 :(得分:1)
$ cat f1
1 A
2 A
5 A
7 A
$ cat f2
B 2
B 4
B 5
B 5
B 6
B 8
$ sort -nk1 -k2 f1 <(awk '{print $2,$1,"*"}' f2) | awk '/*/{print $2,$1; next}1'
1 A
2 A
B 2
B 4
5 A
B 5
B 5
B 6
7 A
B 8