このページの内容

1.5 大文字・小文字の差分を抑制する

GNU diffは、大文字を対応する小文字と同等に扱えます。たとえば、「Funky Stuff」「funky STUFF」「fUNKy stuFf」をすべて同じとみなします。この動作を指定するには、-iまたは--ignore-caseオプションを使います。

大文字・小文字を無視する場合、diffは比較前に各文字を小文字化します。たとえば「diff -i」は、比較前にギリシャ文字の大文字「Δ」を小文字「δ」に変換します。多くの場合はこれでうまくいきますが、問題になる場合もあります。たとえば、次のような場合です。

  • ドイツ語の「Straße」は、多くのドイツ語話者が期待するようには「STRASSE」と同じに扱われません。小文字化すると、それぞれ「straße」と「strasse」になるためです。
  • ギリシャ語の名前「Κως」は、どちらもシグマで終わるにもかかわらず、「ΚΩΣ」と同じに扱われません。後者の末尾の「Σ」(U+03A3 GREEK CAPITAL LETTER SIGMA)は、「ς」(U+03C2 GREEK SMALL LETTER FINAL SIGMA)ではなく「σ」(U+03C3 GREEK SMALL LETTER SIGMA)に小文字化されるためです。
  • 古代ギリシャ語の句「Πάντα ῥεῖ」は、「ΠΆΝΤΑ ῬΕΙ͂」と同じに扱われません。前者の末尾の「ῖ」はU+1FD6(GREEK SMALL LETTER IOTA WITH PERISPOMENI)という1文字ですが、後者の末尾の「Ι͂」はU+0399(GREEK CAPITAL LETTER IOTA)とU+0342(COMBINING GREEK PERISPOMENI)の2文字からなるためです。