diff で改行・空白を無視して比較する

2022-07-19

diffコマンドで空行・空白を無視する

diffコマンドは、ファイルを比較する時によく使うコマンドですが、空白や改行も比較対象として比較されます。
その場合は、「-w」、「-B」のオプションを利用すると、空白を無視したり、空行の改行を無視したりできます

空白を無視してdiffコマンドで比較する

「-w」のオプションを利用すると、空白の違いを無視して比較できます。

# 比較するテキストファイルは以下となります
# text1.txtとtext2.txtは、同じ内容ですが途中で先頭に空白が入っています
$ cat test1.txt 
12345
67890
12345
67890

$ cat test2.txt 
  12345
 67890
12345
67890

# オプションを使用しないで、diffで比較すると以下のようになります
$ diff test1.txt test2.txt
1,2c1,2
< 12345
< 67890
---
>   12345
>  67890

# [-w] を利用すると、空白を無視して比較されます。テキスト内容は同じですので結果は返ってきません
$ diff -w test1.txt test2.txt

空行(改行)を無視してdiffコマンドで比較する

「-B」のオプションを利用すると、空行(改行)を無視して比較できます。

# 比較するファイルは以下となります。
# text1.txtとtext2.txtは、同じ内容ですが途中で空行が入っています
$ cat test1.txt
12345
67890
12345
67890
$ cat test2.txt
12345
67890


12345
67890

# オプションを使用しないで、diffで比較すると以下のようになります
$ diff test1.txt test2.txt
2a3,4
> 
> 

# [-B] を利用すると、空行を無視して比較されます。テキスト内容は同じですので結果は返ってきません
$ diff -B test1.txt test2.txt

空行(改行)と空白を無視してdiffコマンドで比較する

空行(改行)と空白のどちらも無視する場合は「-wB」と空行と空白を無視するオプションを続けて使用します

# 比較するファイルは以下となります。
# text1.txtとtext2.txtは、同じ内容ですが途中で空白・空行が入っています
$ cat test1.txt
12345
67890
12345
67890
$ cat test2.txt
12345
67890


 12345
 67890

# オプションを使用しないで、diffで比較すると以下のようになります
$ diff test1.txt test2.txt 
3,4c3,6
< 12345
< 67890
--- 
> 
> 
>  12345
>  67890

# [-wB] を利用すると、空白・空行を無視して比較されます。テキスト内容は同じですので結果は返ってきません
$ diff -wB test1.txt test2.txt

 

スポンサーリンク

0
0