두 개의 SQL 파일이 있는데 그 중 하나 old.sql
는 new.sql
.
old.sql
Emp_Id, Name 및 Address라는 세 개의 필드가 있는 테이블이 있고 데이터가 다음과 같이 old.sql에 저장되어 있다고 가정합니다 .
Insert into table1 values (101 ,"a", "xyz");
Insert into table1 values (102 ,"b", "pqr");
그런 다음 "a" 주소 "xyz"를 "xyz123"으로 변경하고 해당 데이터를 파일에 저장했습니다 new.sql
. 이제 파일에는 new.sql
다음 데이터가 포함됩니다.
Insert into table1 values (101 ,"a", "xyz123");
Insert into table1 values (102 ,"b", "pqr");
diff
다음과 같은 명령을 사용할 때 :
diff old.sql new.sql
행별로 차이가 있지만 업데이트된 데이터(예: xyz123)만 원합니다.
답변1
답변2
당신은 찾을 수 있습니다wdiff
이러한 유형의 비교에 유용합니다. 축어적 비교를 생성하는 프런트 엔드입니다 diff
. 귀하의 예를 바탕으로 기본적으로 생성됩니다.
Insert into table1 values (101 ,"a", [-"xyz");-] {+"xyz123");+}
Insert into table1 values (102 ,"b", "pqr");
터미널 기능을 사용하여 터미널의 출력을 더 명확하게 만들 수 있습니다( wdiff -t
). 또한 -3
변경된 단어로만 출력을 제한하는 옵션 도 있습니다 .
======================================================================
[-"xyz");-] {+"xyz123");+}
======================================================================
아직 wdiff를 설치하지 않았다면 wdiff를 설치해야 합니다. 운영 체제에 적합한 명령을 실행 sudo apt-get install wdiff
하거나 또는 sudo dnf install wdiff
또는 실행하십시오 .sudo yum install wdiff
답변3
당신은 그것을 사용할 수 있습니다 :
diff -u old.sql new.sql |colordiff |diff-highlight
colordiff는 Ubuntu 소프트웨어 패키지입니다. 를 사용하여 설치할 수 있습니다 sudo apt-get install colordiff
.
diff-hight
git에서(버전 2.9부터). 위치해 있습니다 /usr/share/doc/git/contrib/diff-highlight/diff-highlight
. 당신은 당신과 함께 어딘가에 그것을 넣을 수 있습니다 $PATH
. 또는에서아주 멋진 프로젝트.
답변4
나도 내 글을 썼다자신의 스크립트이 문제를 해결하려면 다음 방법을 사용하십시오.가장 긴 공통 부분 수열 알고리즘.
이것이 실행되는 방법입니다
JLDiff.py a.txt b.txt out.html
결과는 빨간색과 녹색 색상의 HTML입니다. 큰 파일은 처리하는 데 더 오랜 시간이 걸리지만, 이렇게 하면 한 줄씩 먼저 확인할 필요 없이 진정한 문자별 비교가 수행됩니다.
이 답변은 다음에서 교차 게시되었습니다.여기.
JLDiff가 pypy에서 훨씬 빠르게 실행된다는 것을 알았습니다.