file1の数字をfile2の対応する行に置き換えます。

file1の数字をfile2の対応する行に置き換えます。

次のファイルがあります

ファイル1

   3 123456789
   3 00000     
   2 123456789
   2 abcde
   1    
   4 abcdefgh

最初の列の行は、次のように他のファイルの行番号に関連付けられます。

ファイル2

$a&a(md
( l 0 p a$1
=2 3 x5 x4
&a”s?m!a

最初のファイルの最初の列の数字を2番目のファイルの対応する行の内容に置き換えてファイルを融合する方法が必要です。したがって、最終ファイルは次のようになります。

出力

=2 3 x5 x4    123456789
=2 3 x5 x4    00000  
( l 0 p a$1   123456789
( l 0 p a$1   abcde
$a&a(md          
&a”s?m!a      abcdefgh

どの列がどの列であるかがわかる限り、形式は重要ではありません。

私はLinuxを使用しています。

どんな助けでも大変感謝します。

ベストアンサー1

を使用して、行awk(レコード)番号で索引付けされたfile2から配列を構成し、file1の最初のフィールドに基づいて検索できます。

$ awk 'NR==FNR {a[FNR]=$0;next} {printf "%s\t%s\n", a[$1], $2}' file2 file1
=2 3 x5 x4  123456789
=2 3 x5 x4  00000
( l 0 p a$1 123456789
( l 0 p a$1 abcde
$a&a(md 
&a”s?m!a    abcdefgh

このタブは2つの部分に分かれています。必要に応じてコンマで区切ることができます。

おすすめ記事