0

我有两个文件,我想在第一个文件中以相同的行顺序排列第二个文件的行。其中第二个文件的第 2 列和第 5 列与第一个文件具有相同的值,只是它们的顺序不同。考虑到完整的行不仅应该重新排列第 2 列和第 3 列。请建议。

$ cat file1
FEX
MRU
MOV
FTL
MOY
$ cat file2
1/24/2013,MOV,144523,1/25/2013,MOV,1445231
1/24/2013,MOY,298792,1/25/2013,MOY,2987921
1/24/2013,FEX,628037,1/25/2013,FEX,6280371
1/24/2013,MRU,146084,1/25/2013,MRU,1460841
1/24/2013,FTL,454709,1/25/2013,FTL,4547091

所需输出:

1/24/2013,FEX,628037,1/25/2013,FEX,6280371
1/24/2013,MRU,146084,1/25/2013,MRU,1460841
1/24/2013,MOV,144523,1/25/2013,MOV,1445231
1/24/2013,FTL,454709,1/25/2013,FTL,4547091
1/24/2013,MOY,298792,1/25/2013,MOY,2987921
4

1 回答 1

2

假设字段 2 和 5 始终相同,这是使用的一种方法awk

awk -F, 'FNR==NR { a[$2]=$0; next } { print a[$0] }' file2 file1

结果:

1/24/2013,FEX,628037,1/25/2013,FEX,6280371
1/24/2013,MRU,146084,1/25/2013,MRU,1460841
1/24/2013,MOV,144523,1/25/2013,MOV,1445231
1/24/2013,FTL,454709,1/25/2013,FTL,4547091
1/24/2013,MOY,298792,1/25/2013,MOY,2987921
于 2013-02-06T06:16:14.627 回答