diff で改行・空白を無視して比較する
Contents
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
# 比較するテキストファイルは以下となります
# 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
# 比較するテキストファイルは以下となります # 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
# 比較するファイルは以下となります。
# 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
# 比較するファイルは以下となります。 # 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
# 比較するファイルは以下となります。
# 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
# 比較するファイルは以下となります。 # 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
ディスカッション
コメント一覧
まだ、コメントがありません