다음 파일이 있습니다.
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.txt
a.txt
-v
a.txt
답변2
diff
아마도 잘못된 도구일 수 있습니다 grep
. 대신 다음 을 사용하세요.
grep -vxf b.txt a.txt
a.txt
즉, 존재하지 않는 행에서 가져옵니다.b.txt
또는 comm
두 번째 파일의 줄을 억제하여 작동합니다.
comm -23 <(sort a.txt) <(sort b.txt)