2

私はファイルを比較し、それらが同じであるかどうかを判断しようとしていますが、すべての空白を無視しています。

を使用する場合、指定された行の空白を無視するようdiff-b指示します。diffこの-Bオプションは、すべての空白行を無視するように指示します。ただし、スペースのみを含む行がある場合、-B-bは連携していないように見えます。

このオプションを使用することにしました。この-Iオプションでは、空白のみを含むすべての行をdiffで無視します。これは、行にスペースのみが含まれている場合は正常に機能しますが、\tタブ文字と一致しないようです。

POSIX正規表現を使用する必要があると述べた参考文献をオンラインで見つけましたが、POSIXは:blank:任意の空白(タブを含む)に一致すると述べています。それも機能しません。

これが私がやろうとしていることのサンプルです。理想的には、私のdiff行はそれを述べt1.txtt2.txtそしてt3.txtすべて同じでした。

bash#> echo hi > t1.txt
bash#> echo hi > t2.txt
bash#> echo hi > t3.txt
bash#> echo " " >> t2.txt
bash#> echo -e "\t" >> t3.txt
bash#> diff -BbaNq -I "^[ \t]*$" t1.txt t2.txt
bash#> diff -BbaNq -I "^[ \t]*$" t1.txt t3.txt
Files t1.txt and t3.txt differ
bash#> diff -BbaNq -I "^[:blank:]*$" t1.txt t3.txt
Files t1.txt and t3.txt differ
bash#>

構文がどうdiffなるかについてのヘルプは非常に役立ちます。

4

1 に答える 1

0

これを試して:

diff -wBt -u t1.txt t2.txt
于 2012-09-21T22:41:15.690 に答える