0

2 つのファイルがあり、2 番目のファイルの行を 1 番目のファイルと同じ順序で配置したいと考えています。ここで、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
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 に答える