1. ホーム
  2. bash

[解決済み] unix diff side-to-sideの結果?

2022-03-06 11:31:40

質問

unix の diff コマンドの結果を、1 つの差分を次々に表示するのではなく、左右に並べて表示するにはどうしたらよいでしょうか。以下の例を参照してください。

    diff /tmp/test1  /tmp/test2
1,4c1,2
< asfdsadf
< asdfsad
< fsaf
< fdsadf
---
> asdfsafdsf
> saf
6,8d3
< sadf
< asdf
< sadf
10d4
< fasd
12,13c6,14
< sadfa
< fd
---
> sadf
> sadf
> sadf
> sadf
> sadf
> sadf
> sadf
> sadf
> safa

みたいなのが欲しいです。

diff /tmp/test1  /tmp/test2
1,4c1,2
< asfdsadf       > asdfsafdsf
< asdfsad        > saf       
< fsaf
< fdsadf
---
6,8d3
< sadf
< asdf
< sadf
10d4
< fasd
12,13c6,14
< sadfa               > sadf
< fd              > sadf
---               > sadf
              > sadf
              > sadf
              > sadf
              > sadf
              > sadf
              > safa

解決方法は?

から man diff を使用することができます。 -y を使えば、サイド・バイ・サイドが可能です。

-y, --side-by-side
       output in two columns

したがって、言う。

diff -y /tmp/test1  /tmp/test2

テスト

$ cat a                $ cat b
hello                  hello
my name                my name
is me                  is you

比べてみよう。

$ diff -y a b
hello                                                           hello
my name                                                         my name
is me                                                         | is you