Linux 구현이 diff -w
폐기 되었습니까 \n
? 이를 확인하기 위해 Linux 시스템에 액세스할 수 없습니다.
답변1
-w
깃발방법:
-w --ignore-all-space
Ignore all white space.
이제 "공백"이 실제로 일반적으로 포함되기 때문에 이는 완전히 명확하지 않습니다 \n
. 예를 들어, \s
Perl 호환 정규 표현식이나 POSIX의 클래스는 [[:space:]]
개행 문자와 일치합니다.
$ printf '\n' | grep -zqP '\s' && echo yes
yes
$ printf '\n' | grep -zq '[[:space:]]' && echo yes
yes
그러나 diff
비교하여 작업철사줄은 \n
문자로 정의됩니다(실제로는 문자 grep
이므로 -z
위에서 사용해야 했습니다). 따라서 다른 라인이므로 고려할 diff
수 없습니다 . 따라서 아니요, 이 옵션은 줄 바꿈을 삭제하지 않으며 , 빈 줄은 파일이 일치하지 않음을 의미합니다.\n
\n
-w
diff
$ printf 'foo\nbar\n' > file1
$ printf 'foo\n\nbar\n' > file2
$ diff -wq file1 file2
Files file1 and file2 differ
diff
그러나 행 개수로 인한 변경 사항을 무시 하는 옵션이 있습니다 .
-B --ignore-blank-lines
Ignore changes whose lines are all blank.
$ diff -sB file1 file2
Files file1 and file2 are identical