현재 직장에서는 Windows 컴퓨터의 파일을 사용하여 작업해야 하는 경우가 많습니다. 대부분의 경우 이는 큰 문제가 아니지만에 파이프를 나란히 연결하면 diff
보일 less
뿐만 아니라 ^M
들여쓰기도 엉망이 됩니다.,다음과 같습니다:
<U+FEFF>using System;^M <U+FEFF>using System;^M
using System.Reflection;^M using System.Reflection;^M
using System.Runtime.Serializa^M using System.Runtime.Serializa^M
using System.Transactions;^M using System.Transactions;^M
(첫 번째 행의 UTF-8 BOM은 해당 행에만 영향을 주기 때문에 특별히 신경 쓰지 않습니다.)
나도 하나 만들 수 있다는 걸 알아
diff -y <(tr -d '\015' < 파일-a) <(tr -d '\015' < 파일-b) |
그러나 이를 위해서는 많은 타이핑이 필요하며 긴 경로를 file-a
공유할 때 bash의 중괄호를 잘 사용할 수 없습니다. file-b
그리고
diff -y 파일-{a,b} tr -d '\015' |
형식이 엉망이어서 목표를 달성하지 못했습니다.
그러나 흥미롭게도 다음은 ^M
모두 들여쓰기 측면에서 괜찮아 보입니다.
diff -y 파일-{a,b} |헤더
그래서 제 질문은 위의 문제 없이 어떻게 병렬 비교를 less로 파이프할 수 있느냐는 것입니다. (내가 모르는 매개변수를 diff에 추가하는 것과 같은)
답변1
파일을 수정하지 않고 차이점만 인쇄하는 경우 한 가지 옵션은 옵션이 있는 모든 공백을 무시하여 -w
중괄호를 정상적으로 사용할 수 있도록 하는 것입니다.
diff -wy file-{a,b} | less
물론 이 접근 방식은 공백에 다른 중요한 변경 사항이 없는 경우에만 작동합니다.
파일을 복구하는 것이 목적이라면 dos2unix
유틸리티를 사용하는 것이 좋습니다.