"diff" 명령을 최대한 활용하는 방법은 무엇입니까?

"diff" 명령을 최대한 활용하는 방법은 무엇입니까?

diff나는 과거에 많은 운이나 인내심 없이 Linux 명령을 사용해 보았습니다. 나는 보통 DiffMerge나 Kdiff와 같은 GUI 유틸리티를 사용하게 됩니다.

최근 원격 시스템의 파일을 비교하기 위해 SSH를 다시 ​​사용하기 시작했는데 diff이 옵션이 매우 유용하다는 것을 알았지 -y / --side-by-side만 여전히 이 유틸리티를 최대한 활용하지 못하는 것 같습니다.

그래서 다음을 달성하는 방법이 궁금합니다.

  1. 변경 사항을 강조 표시하거나 색상 코딩을 사용하여 출력을 더 읽기 쉽게 만듭니다.
  2. 병합 - 다른 줄을 선택하고 파일 중 하나에 변경 사항을 적용합니다.

그리고, 구글링해봐도 좋은 예시가 많이 나오지 않아서diff를 최대한 활용하기 위한 linux-fu 팁이 있다면 공유할 수 있나요?주로 텍스트 기반 구성 파일을 비교할 예정이지만 어떤 팁과 요령이라도 좋을 것입니다.

참고로- DiffMerge 유틸리티를 사용하면 색상 강조 표시를 통해 변경 사항을 나란히 표시하기가 쉽습니다. 상단에 있는 아이콘을 사용하면 모두 표시, 차이점 표시 및 문맥적 차이 표시 보기 간에 전환할 수 있습니다. 명령 프롬프트의 일부 기능이 마음에 듭니다.

추신: 또한 제가 매우 유용하다고 생각한 또 다른 옵션은 --suppress-common-lines제가 이것에 대해 배운 것입니다.간결하고 읽기 쉬운 블로그 게시물.

답변1

특별한 순서는 없습니다:

  • meld아주 좋은 diff와 3방향 병합을 수행하는 아주 좋은 diff 프로그램입니다.
  • git config --global merge.conflictstyle diff3.meld
  • wdiff하다단어차이가 있다면 아주 좋아요색깔의:wdiff -w "$(tput bold;tput setaf 1)" -x "$(tput sgr0)" -y "$(tput bold;tput setaf 2)" -z "$(tput sgr0)" ...
  • diff출력의 중복을 최소화하기 위해 일반적으로 --ignore-all-space( -w) 옵션을 사용합니다.
  • diff-ignore-moved-lines* 라벨의 지침을 따르십시오.
  • difff* 특정 필드에서 일치하는 행만 비교하는 데 사용할 수 있습니다.

*면책 조항: 저는 CLI와 GUI 비교 및 ​​병합을 돕기 위해 저자이며 이를 개발했습니다.

답변2

내가 찾은vimdiff굉장히 유용하다.

답변3

차이점을 색칠하려면 살펴봐야 합니다.http://colordiff.sourceforge.net/. 이것은 단지 diff를 둘러싼 래퍼이므로 모든 명령 옵션이 여전히 유효합니다.

우분투가 있다면 다음과 같이 작성하세요:

    # sudo apt-get install colordiff

사용 사례를 충족하지 못할 위험을 감수하는 git것은 매우 좋은 선택입니다.VCS많은 비교 및 ​​병합 도구(명령줄 및 GUI 도구)와 잘 통합됩니다. 옵션이 있다면 시도해 보세요.

답변4

노력하다sdiff

diff사용할 병합 스크립트를 생성하는 옵션( -e또는 ) 도 있습니다.-eded

sdiff, 어디를 가든 쉘의 일부가 되어야 합니다 diff.ed

diff버전 제어 소프트웨어에는 도구 가 내장되어 있을 수도 있습니다 merge.

관련 정보