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

해결됨: 여기에 이미지 설명을 입력하세요

관련 정보