전체 파일을 비교하는 방법

전체 파일을 비교하는 방법

예를 들어, 2개의 구성 파일이 있다고 가정해 보겠습니다. 파일 1:

smtpd_sasl_auth_enable = yes
broken_sasl_auth_clients = yes
smtpd_sasl_authenticated_header = yes
virtual_gid_maps = static:5000

파일 2:

virtual_gid_maps = static:5000
broken_sasl_auth_clients = yes
smtpd_sasl_authenticated_header = yes

자세히 보면 으로 시작하는 줄이 있는 것을 알 수 있는데, virtua_gid_*파일 1은 파일의 끝에 넣지만, 파일 2는 파일의 시작 부분에 넣습니다.

두 개의 파일이 있다고 가정해 보겠습니다. 두 파일의 행은 같고 위치는 다르지만 위치는 중요하지 않습니다. 중요한 것은 파일이 존재하는지 존재하지 않는지입니다.

내 파일을 어떻게 비교하나요?

답변1

위치가 중요하지 않은 경우 파일을 정렬한 다음 비교를 수행할 수 있습니다. 정렬된 파일을 준비 영역에 저장해야 합니다.

sort file1 > /tmp/file1
sort file2 > /tmp/file2
diff /tmp/file1 /tmp/file2

vimdiff대신 시도해 볼 수도 있습니다 diff.

답변2

파일에 간단한 <name> = <value>줄만 있는 경우(예:) 다음을 수행할 수 있습니다.

$ cat file1 | sort > /tmp/sortedfile1
$ cat file2 | sort > /tmp/sortedfile2
$ diff /tmp/sortedfile1 /sortedfile2

주변에 같은 양의 공백이 있는 한 작동합니다.=

답변3

서브셸을 사용하면 임시 파일 사용을 피할 수 있습니다.

diff <(sort fileA) <(sort fileB)

또 다른 유용한 프로그램은meld이것은 매우 좋은 GUI입니다 diff.

관련 정보