別ファイルの列の一致

別ファイルの列の一致

2つのファイルがあります。最初のセクションの2番目の列のコンマ区切り値をFile1最初の列の値と一致させ、どうすればよいですかFile2File2awk

ファイル1

Column1    Column2
A          G1,G2
B          G4,G1

ファイル2

G1
G2

希望する結果

Column1    Column2
G1         A,B
G2         A

ベストアンサー1

この試み

awk '
  NR==1 {
    print;
    next;
  }
  NR==FNR {
   split($2,a,","); 
   for(i in a) b[a[i]] = b[a[i]]==""? $1 : b[a[i]] "," $1;
   next;
  }
  {
    if ($1 in b) print $1 "\t" b[$1];
  }
  ' File1 File2

ヘッダー行が存在しない場合、または不要な場合は、最初のルール/アクションペアを削除して単純化できます。

おすすめ記事