2017-03-01 27 views
0

ファイルAは、3つの列を次のようました: AccountNumberを、顧客名、バランスはAWKでの二つのファイルを結合 - 異なる位置で結合列

ファイルBは、以下の5列 システムID、AccountNumberを、製品、OpeningDate

を持っています私は2つのファイルを結合するために、以下のAWKコードを使用しています。これは、両方のファイルの合計出力は システムID、AccountNumberを、製品、OpeningDate、CustomerNameの以下のように期待されている

FNR==NR{a[$1]=$0;next}$2 in a{ print $0, a[$1]} 

、唯一AWKコードでバランス

要求のヘルプを働いていません。同様の機能はSORTとJOINで利用できますが、AWKソリューションのみを探しています。

 
File A: 
+---------------+---------------+----------+ 
| AccountNumber | CustomerName | Balance | 
+---------------+---------------+----------+ 
|    3 | C    |  100 | 
|    4 | A    |  200 | 
|    5 | B    |  300 | 
+---------------+---------------+----------+ 

File B: 
+-----------+----------------+----------+--------------+ 
|  SystemID | AccountNumber | Product | OpeningDate | 
+-----------+----------------+----------+--------------+ 
|   1 |    6 | RD  | 12-05-17  | 
|   2 |    4 | SB  | 15-05-17  | 
|   3 |    3 | TD  | 02-04-17  | 
|   4 |    5 | SB  | 15-01-17  | 
+-----------+----------------+----------+--------------+ 

Output after joining: 
+-----------+----------------+----------+--------------+--------------+---------+ 
|  SystemID | AccountNumber | Product | OpeningDate | CustomerName | Balance | 
+-----------+----------------+----------+--------------+--------------+---------+ 
|   2 |    4 | SB  | 15-05-17  | A   |  200 | 
|   3 |    3 | TD  | 02-04-17  | C   |  100 | 
|   4 |    5 | SB  | 15-01-17  | B   |  300 | 
+-----------+----------------+----------+--------------+--------------+---------+ 

+0

サンプル入力を投稿してください。 'print $ 0、a [$ 1]'ここでもインデックスは '$ 2'でしょうか? – nu11p01n73R

+0

サンプル入力で更新されました。 – user1955215

+0

@ user1955215:なぜこれに 'awk'を使いたいのですか?ファイルは '|'、 '-----------'と '+'の記号で表示されていますか? awkにこれらの文字の制限を解除したいのですか? awkでそのまま出力をフォーマットするのではない – Inian

答えて

1

あなたがパイプを外し、プラスとすることができた場合 - 以下の記号は、ソリューションです -

cat file1 
1 6 RD 12-05-17 
2 4 SB 15-05-17 
3 3 TD 02-04-17 
4 5 SB 15-01-17 

cat file2 
3 C 100 
4 A 200 
5 B 300 

awk 'NR==FNR{a[$1]=$2FS$3;next} $2 in a {print $0, a[$2]}' file2 file1 
2 4 SB 15-05-17 A 200 
3 3 TD 02-04-17 C 100 
4 5 SB 15-01-17 B 300 
+0

'^ 1'素晴らしいプレゼンテーションvipin、あなたが他人を学んで助けてくれるのを見てうれしい –

関連する問題