log를 비교하는 쉘 스크립트를 짜려고 하는데요

limi의 이미지

파일1과 파일2를 비교해서

파일2의 다른점만 출력하게 하고 싶은데

diff를 쓰면 모든 차이점을 다 출력해 버리네요

혹시 파일1을 기준으로 파일2의 다른 점만 출력하게 하는 방법이 없을까요??

aero의 이미지

.
.
.

a.txt , b.txt 가 있는데 a.txt 에는 없고 b.txt만 있는 줄을 찾는다고 하면

a.txt

2009-01-01 sample log1
2009-01-02 sample log2
2009-01-03 sample log3
2009-01-04 sample log4
2009-01-04 sample log4-2
2009-01-05 sample log5
2009-01-06 sample log6
2009-01-06 sample log7
2009-01-07 sample log8
2009-01-08 sample log9
2009-01-09 sample log10

b.txt

2009-01-01 sample log1
2009-01-02 sample log2
2009-01-03 sample log3
2009-01-04 sample log4
2009-01-04 sample log4-1
2009-01-05 sample log5
2009-01-06 sample log6
2009-01-06 sample log7
2009-01-06 sample log7-1
2009-01-07 sample log8
2009-01-08 sample log9
2009-01-09 sample log10

Perl one-liner

perl -e 'open A,$ARGV[0]; open B,$ARGV[1]; @h{<A>}++; print grep {!exists $h{$_}} <B>' a.txt b.txt

결과

2009-01-04 sample log4-1
2009-01-06 sample log7-1

limi의 이미지

너무 감사합니다^^; 그런데 리눅스에서 쉘 스크립트로 짜고 있는거라

diff qcList/$FILE pcList >> faillist

qcList/$FILE 이걸 기준으로 pcList의 목록을 비교하고 싶은데 diff를 그냥 쓰면 둘 다 다른 점이 나와 버리네요...ㅠ

bushi의 이미지

man diff
참고하시고, -u 옵션을 사용한 경우의 출력형식에 대한 설명이
http://kldp.org/node/103533
에 있습니다.

OTL