두 파일에서 중복 항목 찾기 [중복]

두 파일에서 중복 항목 찾기 [중복]

한 파일에서 한 줄을 읽고 두 번째 파일에 해당 줄이 있는지 확인하는 스크립트를 만들어야 합니다. ', " 및 \와 같은 파일의 특수 문자를 처리하는 방법은 무엇입니까?

첫 번째 파일:

a.txt
aa
bb
cc
f
'f'
"g"
'h'

두 번째 파일:

b.txt
cc
dd
'f'
"g"
g
h

주문하다:

cat a.txt | xargs -I{} grep -w {} b.txt

반품:

cc
'f'
'f'
"g"
g  <- it shouldn't be there
h  <- it shouldn't be there

예상되는:

cc
'f'
"g"

나의 경우 마지막 항목(h)은 a.txt 파일에 존재하지 않기 때문에 나열하면 안 된다. "h"(작은따옴표)만 가능합니다. 앞으로 예상치 못한 상황이 발생하지 않도록 하려면 일반적으로 어떻게 처리해야 합니까?

답변1

이것이 바로 이 comm유틸리티의 목적입니다. 일반적으로 이 줄을 실행하여 입력 파일을 정렬하고 에 공급할 수 있습니다 comm. 이러한 -12옵션은 파일 1과 2에 고유한 줄을 표시하지 않고 공통 줄만 표시한다는 의미입니다.

comm -12 <(sort a.txt) <(sort b.txt)

cc
'f'
"g"

관련 정보