Implementación de código adicional del comando Cat awk

Implementación de código adicional del comando Cat awk

Quiero entender cómo usar el comando awk cat porque creo que no lo entiendo

Enesta páginame sugiere usar su código

Primero debes procesar g2.txtasí:

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

Entonces úsalo como:

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

Pero no entiendo cómo usar e implementar este comando cat join2.awkcon su código adicional. Normalmente, desde la línea de comando, uso awk -f join2.sh g2.txt g1.txt, ¿por qué join2.awk? (Yo uso awk en Windows)

Este es mi código original, 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]
  }
}

no entiendo como usarlosucódigo adicional. ¿Tengo que integrarlo en el mío? ¿Necesito crear otro script?
Qué significa "Deberías procesar g2.txtprimero así.?

¿Cómo ejecutar este código?¿Me puedes enseñar por favor? Como awk -f join2.awk g2.txt g1.txtno es suficiente, necesito encontrar una manera de usarlo antes cat join2.awky no entiendo cómo implementar su código y ejecutarlo.

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

SOLUCIONADO: ingrese la descripción de la imagen aquí

información relacionada