2016-09-28 3 views
1

필자가 필요로하는 diff 명령의 종류가 어떤 것인지 잘 모르겠습니다. 그러나 기본적으로 필자는 필자가 필자가 비교할 필요가있는 파일들로 가득 찬 두 개의 디렉토리를 가지고있다. 하지만 한 세트의 파일에는 기본적으로 줄 끝에 '1'이 있습니다.diff 명령을 사용하면 라인 끝의 문자를 무시합니다.

이 두 개체

을 File1/1.TXT

I AM IDENTICAL 

있는 File2/1.TXT가

I AM IDENTICAL 1 

그래서 내가 diff 명령을 원하는 단지 것을 비교하는 경우 예는 것 줄 끝에서 '1'을 생략하고 실제로 변경된 파일을 표시합니다. 지금까지 나는 같은 것을 생각해 냈다.

diff file1/ file2/ -rw -I "$1" | more 

그러나 작동하지 않는다.

사과는 쉬운 분명한 질문입니다. 파일 및/또는 크기의 수는 그 정도가 아닌 경우

+0

"diff"가 만들어지지 않은 것은 아니며, 직접적인 해결책이 있는지 의심 스럽습니다. 대신 'sed'와 같은 것을 사용하여 입력의 원치 않는 부분을 제거한 다음 결과를 diff 명령으로 파이프하는 것이 좋습니다. – arkascha

+0

@arkascha 어떻게 그렇게 할 것인지에 대한 제안. 나는 sed 명령에 익숙하지 않다. –

답변

0

, 당신은 먼저, 차이를 안구 단순히 arkascha이 제안,

vimdiff File1/1.txt File2/1.txt 

그렇지 않으면 옆에 두 파일을 비교할 vimdiff 명령을 사용할 수 있습니다 비교하기 전에 끝 문자를 제거하기 위해 파일을 수정해야합니다.

+0

나는 1000 개의 파일을 비교하므로 불행히도 vimdiff는 실제로 옵션이 아닙니다. 당신은 줄의 끝에 '1'을 제거하기 위해 sed를 사용하여 모든 파일을 한번에 수정하는 방법을 알고 있습니까? –

+0

파일의 모든 줄에 문자 1이 포함되어 있으면 다음 sed 명령을 사용하여 제거 할 수 있습니다.'sed 's/1 $ //'input.txt> output.txt'. 분명히 전체 파일에 대해 for-loops (아마도 bash 스크립트 파일에)가 있어야하고이 명령을 모든 파일 이름 (input.txt)에 적용해야합니다. – MomoPP

관련 문제