我有两个文件,我想在第一个文件中以相同的行顺序排列第二个文件的行。其中第2个文件的第2列和第5个文件与第1个文件的值相同,只是它们的顺序不同。考虑到完整的行不仅要重新排列第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
答案 0 :(得分: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