Linux diffコマンド

4724 ワード

、diff
diffコマンドは、最も簡単な場合に、与えられた2つのファイルの違いを比較します.ファイルパラメータの代わりに「-」を使用する場合、比較する内容は標準入力から入力されます.diffコマンドは、テキストファイルの異同箇所を行単位で比較します.このコマンドでディレクトリの比較を指定すると、サブディレクトリファイルの比較操作を行わずに、ディレクトリ内の同じファイル名を持つファイルが比較されます.
1.1構文
diff(  )(  )

1.2オプション
オプション
説明
-
表示する行のテキストを指定します.このパラメータは-cまたは-uパラメータとともに使用する必要があります.
-aまたは-text
diffプリセットはテキストファイルを行ごとに比較するだけです.
-bまたは-ignore-space-change
スペース文字の違いをチェックしません.
-Bまたは-ignore-blank-lines
空白行をチェックしない;
-c
すべての内容を表示し、異なる点を表示します.
-Cまたは-context
「-c-」コマンドを実行するのと同じです.
-dまたは-minimal
異なる演算アルゴリズムを使用して、小さな単位で比較します.
-Dまたはifdef
このパラメータの出力フォーマットは、フロントプロセッサの巨大セットに使用できます.
-eまたは-ed
このパラメータの出力フォーマットはedのscriptファイルに使用できます.
-fまたは-forward-ed
出力されるフォーマットはedのscriptファイルに似ているが、元のファイルの順序で異なる箇所を表示する.
-Hまたは-speed-large-files
大きなファイルを比較すると、速度を速めることができます.
-lまたは-ignore-matching-lines
2つのファイルがいくつかの行で異なる場合、オプションで指定した文字または文字列が同時に含まれる場合、この2つのファイルの違いは表示されません.
-iまたは-ignore-case
大文字と小文字の違いをチェックしません.
-lまたは-paginate
結果をprプログラムに渡してページを分ける.
-nまたは-rcs
比較結果をRCS形式で表示する.
-Nまたは-new-file
ディレクトリを比較するとき、ファイルAがディレクトリにのみ表示される場合、プリセットはOnly inディレクトリ、ファイルAが-Nパラメータを使用するとdiffはファイルAを空白のファイルと比較します.
-p
比較したファイルがC言語のプログラムコードファイルである場合、差異のある関数名が表示されます.
-Pまたは-unidirectional-new-file
-Nと似ていますが、2番目のディレクトリに1番目のディレクトリにないファイルが含まれている場合にのみ、このファイルを空白のファイルと比較します.
-qまたは-brief
差異の有無のみを表示し、詳細は表示しません.
-rまたは-recursive
サブディレクトリ内のファイルを比較します.
-sまたは-report-identical-files
差異が見つからない場合は、情報が表示されます.
-Sまたは-starting-file
ディレクトリを比較するときは、指定したファイルから比較します.
-tまたは-expand-tabs
出力時にtab文字を展開する.
-Tまたは-initial-tab
各行の前にtab文字を付けて位置合わせします.
-u,-Uまたは-unified=
ファイルの内容の違いをマージして表示します.
-vまたは-version
バージョン情報を表示します.
-wまたは-ignore-all-space
すべてのスペース文字を無視します.
-Wか-width
-yパラメータを使用する場合は、欄幅を指定します.
-xまたは-exclude
オプションで指定したファイルまたはディレクトリを比較しません.
-Xまたは-exclude-from
ファイルまたはディレクトリタイプをテキストファイルとして保存し、=でこのテキストファイルを指定できます.
-yまたは-side-by-side
ファイルの異同点を並列に表示する.
–help
ヘルプを表示します.
–left-column
-yパラメータを使用する場合、2つのファイルのいずれかの行の内容が同じであれば、左側の欄にのみその行の内容が表示されます.
–suppress-common-lines
-yパラメータを使用すると、異なる点のみが表示されます.
1.3パラメータ
  • ファイル1:比較する最初のファイルを指定します.
  • ファイル2:比較する2番目のファイルを指定します.

  • =2.1比較log 2014.log log2013.log ==
    [root@localhost test3]# diff log2014.log log2013.log 
    3c3
    < 2014-03
    ---
    > 2013-03
    8c8
    < 2013-07
    ---
    > 2013-08
    11,12d10
    < 2013-11
    < 2013-12
    

    上の「3 c 3」と「8 c 8」はlog 2014を表す.logとlog 20143 logファイルは3行目と8行目で内容が異なる.「11,12 d 10」は、第1のファイルが第2のファイルよりも第11および12行多いことを示す.
    2.2並列フォーマット出力
    [root@localhost test3]# diff log2014.log log2013.log  -y -W 50
    2013-01                 2013-01
    2013-02                 2013-02
    2014-03               | 2013-03
    2013-04                 2013-04
    2013-05                 2013-05
    2013-06                 2013-06
    2013-07                 2013-07
    2013-07               | 2013-08
    2013-09                 2013-09
    2013-10                 2013-10
    2013-11               <
    2013-12               <
    [root@localhost test3]# diff log2013.log log2014.log  -y -W 50
    2013-01                 2013-01
    2013-02                 2013-02
    2013-03               | 2014-03
    2013-04                 2013-04
    2013-05                 2013-05
    2013-06                 2013-06
    2013-07                 2013-07
    2013-08               | 2013-07
    2013-09                 2013-09
    2013-10                 2013-10
                          > 2013-11
                          > 2013-12
    

    説明:
    「|」は前後の2つのファイルの内容が異なることを示します」>「後ろのファイルが前のファイルより1行多いことを示します