일치하는 텍스트(전체 줄이 아님)가 다른 파일에 있는 파일에서 줄을 삭제하는 가장 좋은 방법

일치하는 텍스트(전체 줄이 아님)가 다른 파일에 있는 파일에서 줄을 삭제하는 가장 좋은 방법

이메일 주소 파일(파일 1)과 해당 이메일 주소 중 일부를 포함하는 다른 데이터 라인 파일(파일 2)이 있습니다.

파일을 비교하고 파일 1의 이메일과 일치하는 파일 2의 모든 줄을 삭제하고 싶습니다.

나는 루프를 수행하고 sed -i 각 줄을 새 파일로 사용하거나 루프하고 grep한 다음 파일을 COMM과 비교할 수 있다는 것을 알고 있습니다.

하지만 file1의 모든 줄을 file2로 grep하고 file1의 이메일이 포함되지 않은 file2의 줄만 유지할 수 있는 비교 방법이 있는지 알고 싶습니다.

파일 1:

[email protected]
[email protected]
[email protected]

파일 2:

23456|tom|jones|test@goodemailcom|10
12345|pete|best|[email protected]|10
87569|remove3|me3|[email protected]|10
23098|mike|jones|mike@goodemailcom|10
10985|al|best|[email protected]|10
09865|removve|me|[email protected]|10
13579|remove2|me2|[email protected]|10

누구나 가지고 있는 지식을 높이 평가합니다.

답변1

다음을 위해 사용할 수 있습니다 fgrep:

fgrep -v -f file1  file2  > unique_addresses

두 파일의 각 줄에 이메일 주소가 있으면 이 작업이 훨씬 쉬울 것입니다.

전통적으로 fgrep별도의 프로그램으로 존재하지만 GNU 유틸리티에서는 grep -F동일한 작업을 수행합니다.

관련 정보