0

私は以下のfile1を持っています

30012516|Geralyn|test|1010029|9985|0029|50|00|OneTime|1227065|2013-03-04|||||||Code4
30013017|tamara|test|3440029|1114|029|41|00|OneTime|1239244|2013-03-04|||||||Code3
30015518|daniel|test|3140029L|6440|0029|99|00|OneTime|1239306|2013-03-03|||||||Code2
30050011|first|test|1240030|1745|030|96|00|OneTime|1284010|2013-02-22|||||||Code1
10010905|madhu|com|5230029|614|029|29|10|OneTime|1293016|2013-03-04|||||||Code5

以下のfile2で$18(つまり、code {x})を検索したいのですが、一致するものが見つかった場合は、file2の対応する値を出力します。

Code1=Results of code1
Code3=Results of code3 
Code2=Results of code2
Code5=Results of code5
Code6=Results of code6
Code4=Results of code4
Code7=Results of code7
Code8=Results of code8
Code9=Results of code9
Code10=Results of code10

その場合、最終的な出力は次のようになります。

Results of code4
Results of code3
Results of code2
Results of code1
Results of code5

対応するキーの値を取得するために、以下のgrepコマンドを試しました

"(grep '"$18"=' file2 | cut -d'=' -f2)" | getline result 

正常に動作していましたが、一部のキーでは適切な値が返されませんでした。適切な結果を得る他の方法はありますか

4

1 に答える 1

2

このawkアプローチを試すことができます:

awk -F= 'NR==FNR{A[$1]=$2; next} $NF in A{print A[$NF]}' file2 FS=\| file1
于 2013-03-06T13:14:19.747 に答える