助けを求めて、2つのファイルがあります。 1つはさまざまな名前を含む大きなリスト、もう1つは座標です。両方のファイルの各行は8ビットコードで始まります。 File1で8ビットラインコードを見つけ、File2の一致するすべてのラインコードにラインコンテンツをコピーしたいと思います。
(ファイル1)ハッシュ/名前は一度だけ表示されます。
136667ED ap1_01_a_ap1_01_rails_07
035B337C ap1_01_a_arrows_005
79546F82 ap1_01_a_centreline_010
0E1D31E7 prop_bush_med_02
(ファイル2)一部は0E1D31E7など、異なる座標を持つ複数のハッシュコピーを持っています。
136667ED -1294.6945,-2376.0317,21.8279
035B337C -1314.6719,-2721.7378,12.9467
79546F82 -1283.1066,-2529.9771,12.9635
0E1D31E7 1919.4160,-1814.3889,160.5210
0E1D31E7 1919.9885,-2628.2529,0.7537
0E1D31E7 192.0235,-2603.1790,4.9978
0E1D31E7 192.1050,4950.3540,389.4736
8ビットコード/名前を一致するファイル2のコード行にコピーする方法は次のとおりです。
136667ED -1294.6945,-2376.0317,21.8279 136667ED ap1_01_a_ap1_01_rails_07
035B337C -1314.6719,-2721.7378,12.9467 035B337C ap1_01_a_arrows_005
79546F82 -1283.1066,-2529.9771,12.9635 79546F82 ap1_01_a_centreline_010
0E1D31E7 1919.4160,-1814.3889,160.5210 0E1D31E7 prop_bush_med_02
0E1D31E7 1919.9885,-2628.2529,0.7537 0E1D31E7 prop_bush_med_02
0E1D31E7 192.0235,-2603.1790,4.9978 0E1D31E7 prop_bush_med_02
0E1D31E7 192.1050,4950.3540,389.4736 0E1D31E7 prop_bush_med_02
うまくいくかもしれませんが、これらのコマンドを実行する方法がわかりません。私は窓を使っています。
答え1
入力に基づいてpaste
標準出力コマンドを使用した出力は次のとおりです。
$ paste File1 File2
136667ED ap1_01_a_ap1_01_rails_07 136667ED -1294.6945,-2376.0317,21.8279
035B337C ap1_01_a_arrows_005 035B337C -1314.6719,-2721.7378,12.9467
79546F82 ap1_01_a_centreline_010 79546F82 -1283.1066,-2529.9771,12.9635
大容量ファイルがあるのでpaste File1 File2 > mergedfile
。
答え2
join
プロセス置換を理解するシェルを使用してください。
$ join <(sort file2) <(sort file1)
035B337C -1314.6719,-2721.7378,12.9467 ap1_01_a_arrows_005
0E1D31E7 1919.4160,-1814.3889,160.5210 prop_bush_med_02
0E1D31E7 1919.9885,-2628.2529,0.7537 prop_bush_med_02
0E1D31E7 192.0235,-2603.1790,4.9978 prop_bush_med_02
0E1D31E7 192.1050,4950.3540,389.4736 prop_bush_med_02
136667ED -1294.6945,-2376.0317,21.8279 ap1_01_a_ap1_01_rails_07
79546F82 -1283.1066,-2529.9771,12.9635 ap1_01_a_centreline_010
または、出力の途中で結合フィールドをコピーします。
$ join -o0,1.2,0,2.2 <(sort file2) <(sort file1)
035B337C -1314.6719,-2721.7378,12.9467 035B337C ap1_01_a_arrows_005
0E1D31E7 1919.4160,-1814.3889,160.5210 0E1D31E7 prop_bush_med_02
0E1D31E7 1919.9885,-2628.2529,0.7537 0E1D31E7 prop_bush_med_02
0E1D31E7 192.0235,-2603.1790,4.9978 0E1D31E7 prop_bush_med_02
0E1D31E7 192.1050,4950.3540,389.4736 0E1D31E7 prop_bush_med_02
136667ED -1294.6945,-2376.0317,21.8279 136667ED ap1_01_a_ap1_01_rails_07
79546F82 -1283.1066,-2529.9771,12.9635 79546F82 ap1_01_a_centreline_010
より良い熱の場合:
$ join -o0,1.2,0,2.2 <(sort file2) <(sort file1) | column -t
035B337C -1314.6719,-2721.7378,12.9467 035B337C ap1_01_a_arrows_005
0E1D31E7 1919.4160,-1814.3889,160.5210 0E1D31E7 prop_bush_med_02
0E1D31E7 1919.9885,-2628.2529,0.7537 0E1D31E7 prop_bush_med_02
0E1D31E7 192.0235,-2603.1790,4.9978 0E1D31E7 prop_bush_med_02
0E1D31E7 192.1050,4950.3540,389.4736 0E1D31E7 prop_bush_med_02
136667ED -1294.6945,-2376.0317,21.8279 136667ED ap1_01_a_ap1_01_rails_07
79546F82 -1283.1066,-2529.9771,12.9635 79546F82 ap1_01_a_centreline_010