diff 명령 출력의 탭 크기를 변경할 수 있는 방법이 있습니까?

diff 명령 출력의 탭 크기를 변경할 수 있는 방법이 있습니까?

OSX에서 diff다음과 같은 명령을 실행하여 병렬 출력을 생성합니다.

$] diff -Bbwy --width=200 --suppress-common-lines file1.txt file2.txt > diff-output.txt

내 차이점은 잘 출력되지만 탭을 사용하여 출력을 들여쓰기합니다(나란한 줄 정렬 등). 또한 관련 파일은 탭을 사용하여 들여쓰기되므로 diff 출력에는 해당 파일이 모두 포함됩니다.

내가 원하는 출력에는 diff공백, 특히 탭 대신 공백 4개가 있습니다.

diff이 작업을 지원하는 옵션이 있다는 것을 알고 있지만 -t문제는 모든 탭에 고정된 크기인 8개의 공백을 사용한다는 것입니다(원본 파일의 들여쓰기된 선행 탭뿐만 아니라 중심선 정렬을 유지하기 위해 정렬된 탭도 포함). 등. ).

출력에서 탭(또는 공백)을 가져와 필요한 크기인 4개의 공백으로 줄이기 위해 다양한 후처리 방법을 시도했지만 이로 인해 항상 diff나란히 출력이 잘못 정렬됩니다.diff

diff그런 다음 비교하기 전에 편집 중이거나 사용 중인 두 파일을 전처리하거나 tab2space각 파일의 줄 들여쓰기를 탭에서 4개의 공백으로 변경하는 유사한 방법을 사용할 수 있을 것이라고 생각했습니다 . 하지만 전처리된 두 입력을 diff.

나는 할 수있다?

아니면 제가 시도하지 않은 다른 방법이 있나요? diff -t8개가 아닌 4개의 스페이스 탭만 사용하도록 구성/강제하는 비밀 방법이 있나요 ?

답변1

차이점  (옵션)  <(확장-t4 파일 1.txt)<(확장-t4 파일 2.txt)
탭 정지가 네 번째 열마다 설정된다고 가정하여 입력 파일의 탭을 공백으로 확장합니다. 이 옵션을 diff'의 -t옵션과 결합하면 원하는 결과를 얻을 수 있습니다.

관련 정보