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

解決了: 在此輸入影像描述

相關內容