Cat awk コマンドの追加コード実装

Cat awk コマンドの追加コード実装

awk catコマンドの使い方を理解したいのですが、理解できないと思います。

このページ彼は私に彼のコードを使うように勧めた

まず次のように処理する必要がありますg2.txt

cat join2.awk

BEGIN {
  OFS=FS=";"
}
ARGIND == 1 {
   map[$2] = ($2 in map ? map[$2] OFS : "") $1
   next
}
{
   r = $0;
   for (i=1; i<=NF; ++i)
      if ($i in map)
         r = r OFS map[$i]
   $0 = r
}
1

次のように使用します。

awk -f join2.awk g2.txt g1.txt

cat join2.awkしかし、このコマンドを追加コードで使用して実装する方法がわかりません。通常、コマンドラインから を使用しますがawk -f join2.sh g2.txt g1.txt、なぜですかjoin2.awk? (Windows では awk を使用します)

これは私のオリジナルコード、join2.shです

#! /usr/bin/awk  -f

BEGIN {
  OFS=FS=";"
  C=0;
}
{
  if (ARGIND == 1) {
     X = $NF
     T0[$NF] = C++
     $NF = ""
     if (T1[X]) {
        T1[X] = T1[X] $0
     } else {
        T1[X] = $0
     }
  } else {
     X = $NF
     T0[$NF] = C++
     $NF = ""
     if (T2[X]) {
        T2[X] = T2[X] $0
     } else {
        T2[X] = $0
     }
  }
}

END {
  for (X in T0) {
    # concatenate T1[X] and X, since T1[X] ends with ";"
    print T1[X]  X, T2[X]
  }
}

使い方が分からない彼の追加コード。これを自分のものに統合する必要がありますか?別のスクリプトを作成する必要がありますか?
これはどういう意味ですか?g2.txtまずこのように処理する必要があります?

このコードを実行するにはどうすればいいですか?見せてもらえますか?awk -f join2.awk g2.txt g1.txt十分ではないので、以前の使用方法を見つける必要がありcat join2.awk、彼のコードを実装して実行する方法がわかりません

cat join2.awk
    
    BEGIN {
      OFS=FS=";"
    }
    ARGIND == 1 {
       map[$2] = ($2 in map ? map[$2] OFS : "") $1
       next
    }
    {
       r = $0;
       for (i=1; i<=NF; ++i)
          if ($i in map)
             r = r OFS map[$i]
       $0 = r
    }
    1

解決済み: ここに画像の説明を入力してください

関連情報