0

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

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.txt、上記の最後の文字列の値を含む別の文字列ですfile1.txt

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

コマンドを使用して、最初にinawkの最後の文字列を検索し、結果の値を次のように追加します(これが最終出力になります)file1.txtfile2.txt

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

以下のコマンドを試しましたが、値が表示されるだけで、結果を追加できませんでしたfile1.txt

awk -F= 'NR==FNR{A[$1]=$2; next} $NF in A{print A[$NF]}' file2.txt FS=\| file1.txt  > output.out
4

1 に答える 1

1

この行を試してください:

 awk -F= 'NR==FNR{a[$1]=$2;next} {for(x in a) if($0~"\\|"x"$"){print $0"|"a[x];break}}' file2 file1

またはあなたの声明の少しの修正:

 awk -F= 'NR==FNR{A[$1]=$2; next} $NF in A{print $0,A[$NF]}' file2.txt FS=\| OFS="|" file1.txt
于 2013-03-22T09:45:11.400 に答える