쉘스크립트
10. 파일비교 스크립트2
Dorori
2009. 9. 18. 13:57
이번에는 두개의 파일이 있고
A 라는 파일은 원본 파일로 데이터량이 많다
B 라는 파일은 A보단 양이 적다.
원하는 것은 A 에서 B 를 제외한 나머지의 데이터를 알고 싶다.
sdiff 라는 것은 아래와 같이 동작한다.
예를 들어 a.txt 에 1부터 8까지 넣고 b.txt 에 1부터 4까지 넣었다면 아래와 같이 나온다.
오른쪽의 < 표시는 a.txt 에는 존재하고 b.txt 에는 존재하지 않는 것이다.
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
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에만 있는 경우는 > 기호, 두 줄이 서로 똑 같은 경우는 아무것도 없습니다
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 <
1 1
2 2
3 3
4 4
5 <
6 <
7 <
8 <
최종 파일 비교 스크립트 -> http://darkrang.tistory.com/219