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

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

두 단락의 텍스트가 있습니다. 이 같은:

house structure
bank economy
rose animal
...

또 다른 텍스트에는 각 단어에 대해 여러 개의 "태그"가 포함되어 있습니다.

house structure
bank economy
bank confort
rose plant
...

나에게 필요한 것은 첫 번째 텍스트의 두 번째 필드가 두 번째 텍스트의 두 번째 필드에 있는 여러 필드와 동일한지 계산하는 것입니다. 예를 들어, "house"라는 단어는 첫 번째와 두 번째 모두에서 구성이므로 +1입니다. 첫 번째 텍스트의 "bank"라는 단어는 "economy"이고 두 번째 텍스트의 "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

관련 정보