別のファイルの列をマージするには、awkにコマンドを入力します。

別のファイルの列をマージするには、awkにコマンドを入力します。

たとえば、file.txtがあります(行ごとに列数が異なります)。

1 2 3 4
5 5 6 
7 7 7 7 9 10

2つの列を含む別のファイル(file2.txt)があります。

    a b
    c d
    e f

私は次のコマンドを使用します。

awk '{print $1,$(cut -f2 file2.txt)}' file.txt > final.txt

file2.txtの2番目の列を取得し、file1.txtの列1と列2の間に追加したいと思います。

前任者。結果:

1 d 2 3 4 
5 d 5 6
7 f 7 7 7 9 10

また、file1.txtの残りのすべての列を維持したいと思います。

ベストアンサー1

純粋なawk:

awk '
    FNR==NR{c[NR]=$2}
    FNR!=NR{$1 = $1 OFS c[FNR]; print}
' file2 file

出力:

1 b 2 3 4 
5 d 5 6 
7 f 7 7 7 9 10

おすすめ記事