2009. 9. 18. 13:57

10. 파일비교 스크립트2

이번에는 두개의 파일이 있고
A 라는 파일은 원본 파일로 데이터량이 많다
B 라는 파일은 A보단 양이 적다.

원하는 것은 A 에서 B 를 제외한 나머지의 데이터를 알고 싶다.


#!/bin/bash
A=/user1/si/z_bjh/a.txt
B=/user1/si/z_bjh/b.txt
sdiff $A $B > c.txt
sed -n "/</p" c.txt | awk '{print $1}' > d.txt


sdiff 라는 것은 아래와 같이 동작한다.

두 텍스트 파일을 동시에 같이 보면서 그 차이점을 살펴보려면, 다음과 같이 합니다.

   sdiff file1 file2

sdiff 명령은 두 파일을 각각 한 줄씩 서로 비교해 가면서, 두 파일의 내용을 모두 출력합니다.

그 줄이 서로 다른 경우는 | 기호, file1에만 있는 경우는 < 기호, file2에만 있는 경우는 > 기호, 두 줄이 서로 똑 같은 경우는 아무것도 없습니다



예를 들어 a.txt 에 1부터 8까지 넣고  b.txt 에 1부터 4까지 넣었다면 아래와 같이 나온다.
오른쪽의 < 표시는 a.txt 에는 존재하고 b.txt 에는 존재하지 않는 것이다.

sdiff a.txt b.txt
1                                                               1
2                                                               2
3                                                               3
4                                                               4
5                                                             <
6                                                             <
7                                                             <
8                                                             <




최종 파일 비교 스크립트 -> http://darkrang.tistory.com/219