2개의 텍스트 파일을 비교하고 행이 공통 문자열로 형식화되는 세 번째 텍스트 파일을 만듭니다(인접 문자열 완성).

2개의 텍스트 파일을 비교하고 행이 공통 문자열로 형식화되는 세 번째 텍스트 파일을 만듭니다(인접 문자열 완성).

2개의 텍스트 파일이 있습니다.
텍스트1.txt:
첫 번째는 이런 식으로 구성됩니다.

<title>Developing a wireless </title> ##www.google.com##
<title>Webdriver Actionchains </title> ##www.alfa.com##
<title>Populating a DataGridViewComboBox </title> ##www.beta.com##

텍스트2.txt
두 번째 텍스트 파일은 다음과 같이 구성됩니다.

hhppKJt.png ##www.beta.com##
MchrzjL.zip ##www.google.com##

새로 만드는 방법이 있는지 물어봅니다제삼텍스트 파일이지만 다음과 같이 구성되어 있습니다.

<title>Developing a wireless </title> ##www.google.com## MchrzjL.zip
<title>Populating a DataGridViewComboBox </title> ##www.beta.com## hhppKJt.png
<title>Webdriver Actionchains </title> ##www.alfa.com##

즉, 스크립트(powershell, 배치 또는 일부 비교 프로그램)는 두 텍스트 파일 사이에 공통 문자열이 있는지 확인하고 해당 파일을 검색한 후 해당 특정 문자열을 새 행으로 연결해야 합니다.
예를 들어, 두 경우 모두첫 번째그리고두번째텍스트 파일에는 다음과 같은 공통 문자열이 있습니다.

##www.beta.com##
##www.google.com##

이것이 사실이라면 이 문자열을 결합해야 합니다

hhppKJt.png
MchrzjL.zip

이런 방식으로 첫 번째 텍스트 파일의 상대 행을 강화합니다.

<title>Developing a wireless </title> ##www.google.com## MchrzjL.zip
<title>Populating a DataGridViewComboBox </title> ##www.beta.com## hhppKJt.png
<title>Webdriver Actionchains </title> ##www.alfa.com##

답변1

#! /usr/bin/awk -f

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

END {
  for (X in T0) {
    print T1[X],X,T2[X]
  }
}

위의 내용을 모두 스크립트에 넣으세요. Join.sh를 실행하고 이 스크립트를 실행 가능하게 만듭니다. 두 개의 파일 이름을 매개변수로 사용하여 스크립트를 호출합니다. 예:

./join.sh text1.txt text2.sh

m:n 비율을 충족시키려고 노력 중입니다.

#! /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]
  }
}

관련 정보