다른 텍스트의 필드 비교(반복 필드 포함)

다른 텍스트의 필드 비교(반복 필드 포함)

문자가 두 개 있어요. 하나는 다음과 같습니다:

house structure
bank economy
rose animal
...

그리고 각 단어에 대해 하나 이상의 "레이블"을 포함하는 또 다른 텍스트:

house structure
bank economy
bank confort
rose plant
...

내가 필요한 것은 첫 번째 텍스트의 두 번째 필드가 두 번째 텍스트의 두 번째 필드 중 ONE OF THE MANY와 동일한지 계산하는 것입니다. 예를 들어, "house"라는 단어는 첫 번째와 두 번째에도 구조이므로 +1입니다. 첫 번째 텍스트의 "bank"라는 단어는 경제이고 두 번째 텍스트에서도 ONE OF THE MANY이므로 +1입니다. "장미"라는 단어는 첫 번째에는 동물로 표시되고 두 번째에는 동물로 표시되므로 +0입니다.

결국에는 많은 포인트가 필요합니다. 그렇게 하는 가장 쉬운 방법은 무엇입니까? 도움을 주셔서 감사합니다. 조금 지저분합니다.

답변1

Linux 답변은 아니지만 이런 종류의 경우 두 파일을 모두 Excel로 이식한 다음 vlookup 및/또는 count를 사용하여 비교합니다.

답변2

귀하의 예에 따르면 첫 번째 파일의 특정 줄이 두 번째 파일에 있는지 여부를 찾고 싶은 것 같습니다. 그렇다면 할 수 있습니다

grep -c -f file1 file2

이런 맥락에서도 다음을 살펴보세요.이것그리고이것속도가 문제라면 게시하세요.

답변3

어때?

awk 'NR==FNR {a[$1]=$2; next;} a[$1]==$2' text1 text2
house structure
bank economy

또는 실제 개수를 원하는 경우

awk 'NR==FNR {a[$1]=$2; next;} a[$1]==$2 {c[$1]++} END {for (i in c) print i, c[i]}' text1 text2
house 1
bank 1

관련 정보