私はファイルを比較し、それらが同じであるかどうかを判断しようとしていますが、すべての空白を無視しています。
を使用する場合、指定された行の空白を無視するようdiff
に-b
指示します。diff
この-B
オプションは、すべての空白行を無視するように指示します。ただし、スペースのみを含む行がある場合、-B
と-b
は連携していないように見えます。
このオプションを使用することにしました。この-I
オプションでは、空白のみを含むすべての行をdiffで無視します。これは、行にスペースのみが含まれている場合は正常に機能しますが、\t
タブ文字と一致しないようです。
POSIX正規表現を使用する必要があると述べた参考文献をオンラインで見つけましたが、POSIXは:blank:
任意の空白(タブを含む)に一致すると述べています。それも機能しません。
これが私がやろうとしていることのサンプルです。理想的には、私のdiff
行はそれを述べt1.txt
、t2.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
なるかについてのヘルプは非常に役立ちます。