2012-12-11 3 views
2

다음 예에서 GNU diff가 공백을 무시하도록하려면 어떻게해야합니까?diff가 공백을 무시합니다.

파일 A :

x 
do 

done 

파일 B :

x 

do 
done 

는 어느 파일이 어떤 줄에 공백을 후행하고있다. 맥 OS X에 GNU은 diff 3.1을 사용하여

내가 얻을 :

diff --suppress-blank-empty -E -b -w -B -I '^[[:space:]]*$' --strip-trailing-cr -i a b 
2d1 
< do 
3a3 
> do 

내가 여기 실종 무엇 :

diff -w a b 
2d1 
< do 
3a3 
> do 

같은 나는 다양한 유망 찾고 옵션을 추가 할 때?

diff --version 
diff (GNU diffutils) 3.1 
+0

나는 같은 문제/질문을 가지고있다. '-bBw '나 완전한 인수 중 하나도 공백 라인이나 공백을 무시하지 않습니다. 아직 해결책을 생각해 냈어? –

답변

1

나는 여기에 문제가 DIFF는 첫 번째 파일에서 제거 된 것으로 do를 보는 것을 생각하고, 변화 주변에 충분한 상황이없는 어쩌면 때문에, 두 번째에 추가됩니다.

파일의 순서를 인수로 바꾸면 diff가 공백이 추가되고 제거되었다고보고하고 --ignore-blanks-lines으로 무시합니다.

$ diff test.txt test2.txt -u 
--- test.txt 2015-10-20 10:50:52.585167600 -0700 
+++ test2.txt 2015-10-20 10:51:01.042167600 -0700 
@@ -1,4 +1,4 @@ 
x 
-do 

+do 
done 

[email protected] ~/temp 
$ diff test2.txt test.txt -u 
--- test2.txt 2015-10-20 10:51:01.042167600 -0700 
+++ test.txt 2015-10-20 10:50:52.585167600 -0700 
@@ -1,4 +1,4 @@ 
x 
- 
do 
+ 
done 

그리고 --ignore-빈 라인과 결과, 그리고 순서는 전환 : 통합은 diff로 보면

이 좀 더 분명하다

[email protected] ~/temp 
$ diff test2.txt test.txt -B -u 
+0

diff가 인수의 순서와 관계가 없다는 것은 여전히 ​​이상한 것처럼 보입니다. 즉, 'diff a b'가 'no differences'이고 'diff b a'가 동일하지 않으면 안됩니다. – Robert

관련 문제