Linuxの最初のファイルの1行が2番目のファイルの複数行にマージされ、非正規化に変わりました。

Linuxの最初のファイルの1行が2番目のファイルの複数行にマージされ、非正規化に変わりました。

ファイル1

Group   Country Lang
IT      USA     ENG

ファイル_2

EMPID   STOREID
1001    1400
1002    1401
1003    1401

私が使うなら

paste -d'\t' File_1 File_2

わかりました。

Group^ICountry^ILang^IEMPID^ISTOREID$
IT^IUSA^IENG^I1001^I1400$
^I1002^I1401$   
^I1003^I1401$

私がこのようなものを手に入れようとしたとき

Group   Country Lang    EMPID   STOREID
IT  USA ENG     1001    1400
IT  USA ENG     1002    1401
IT  USA ENG     1003    1401

提案してください

ベストアンサー1

$ awk -v OFS='\t' 'NR==FNR{a[FNR==1]=$0; next} {print a[FNR==1], $0}' file1 file2
Group   Country Lang    EMPID   STOREID
IT      USA     ENG     1001    1400
IT      USA     ENG     1002    1401
IT      USA     ENG     1003    1401

上記は「ファイルの最初の行です」()比較結果1または0を使用して配列のインデックスを作成するため、ファイルFNR==11の最初の行はファイル2に関連付けられ、ファイル2の他のすべての行はになります。ファイル1インデックス0の2行目。どのawkでも同じように動作します。

おすすめ記事