diff를 사용하여 a.txt 파일에서 누락된 줄을 얻는 방법은 무엇입니까?

diff를 사용하여 a.txt 파일에서 누락된 줄을 얻는 방법은 무엇입니까?

다음 파일이 있습니다.

a.txt

1
2
11
22
33
444

b.txt

1
2
3
11
22
33
555

b.txt에 없는 행을 a.txt에서 검색하고 싶습니다.

나는 이전에 시도했습니다:

diff a.txt b.txt -d
2a3
> 3
6c7
< 444
---
> 555

하지만 나는 출력이

444

오직. diff에 어떤 종류의 필터를 넣을 수 있는 방법이 있나요?

답변1

사용하기 가장 좋습니다grep

grep -f b.txt -v a.txt

키는 검색할 패턴 목록으로 -f정의됩니다 . 키는 검색을 반대로 하고 패턴이 발견되지 않은 곳의 출력 행을 인쇄합니다 .b.txta.txt-va.txt

답변2

diff아마도 잘못된 도구일 수 있습니다 grep. 대신 다음 을 사용하세요.

grep -vxf b.txt a.txt

a.txt즉, 존재하지 않는 행에서 가져옵니다.b.txt

또는 comm두 번째 파일의 줄을 억제하여 작동합니다.

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

관련 정보