Diff

Diff[first,second]

firstsecond の差分表現を返す.

Diff[first,second,format]

差分を指定のフォーマットで表す.

詳細とオプション

  • Diffは,以下の型の式について結果を生成する.
  • リスト{}2つのリストの違いを返す
    テキスト"text", File["fname.txt"]2つのテキストブロックの,個々の文字,単語,行の違いを返す
    生体分子配列BioSequence[]2つの生体分子配列間の文字の連なりの違いを返す
    セルCell[], CellObject[]2つのセルの間の,コンテンツ,スタイル,オプションの違いを返す
    ノートブックNotebook[], NotebookObject[], File["fname.nb"]2つのノートブック間のセルとオプションの違いを返す
  • DiffDiffObjectを返す.
  • Diffは,要素の列を比較する際はSequenceAlignmentを使う.
  • Diffには,SequenceAlignmentと同じオプションに以下を追加したものが使える.
  • DiffAlignmentMethod Automatic差分の並べ方
    DiffGranularity Automatic差分の粒度
    DiffIgnore {}無視すべきデータ型のリスト
    DiffIncludeMatches Automaticマッチするデータを結果のDiffObjectに含めるかどうか
    DiffInputFunction Identity差分の入力を前処理する関数
  • Diffの出力の表示方法は,以下のオプションで制御できる.
  • Alignment{Automatic, Automatic}表示エリアのオブジェクトのアラインメント
    AppearanceAutomatic差分の全体的な外観
    AppearanceElementsAutomatic表示する差分に含める要素
    DiffStyle<||>差分のベーススタイル指定
    ImageSizeAutomatic差分の全体的な画像サイズ
    ImageSizeActionAutomaticコンテンツのサイズが画像サイズと一致しない際にどうするか
    ScrollbarsFalseスクロールバーを含めるかどうか
    ScrollPosition{0,0}スクロールが有効な場合のスクロール位置
  • DiffGranularityは,テキスト間の差分を取るときは,"Lines""Words"あるいは"Characters"設定を使って両者の違いを結果のDiffObjectに合わせて符号化することができる.デフォルトで,2つの文字列を比較すると"Characters"差分が与えられる.どちらかのオブジェクトがテキストファイルの場合は."Lines"差分が与えられる.
  • Diffは,ノートブックを比較するときは,セルの構造についての追加的な知識を使用して2つのノートブックのセルリストの揃え方を決定する.デフォルトで,揃えるために与えられたセルのペアのExpressionUUIDを参照する.セル間の編集距離のみを一致させてセルリストを揃える際はDiffAlignmentMethod"CellEditDistance"を使う.
  • Diff[first,second]Diff[first,second,"DiffObjectViewer"]に等しいが,これは,異なる形式がインタラクティブに選択できるポップアップメニュー付きのビューアを作成する.format の他の値は,ビュータイプをインタラクティブに変更する機能なしで,指定された形式として表示される.
  • format の値の中には firstsecond の違いをインライン注釈で示しながら両者を明示的に表示するものがある.
  • "CharacterAlignment"文字列または生体分子配列の場合,firstsecond の個々の文字を垂直に並べて表示する
    "Combined"firstsecond を組み合せたものを表示する
    "Separate"リスト{first,second}を表示する
    "SideBySide"firstsecond の要素を隣り合った列に並べて表示する
    "Unified"firstsecond の要素を単一の統合された列で表示する
  • format の値の中には,抽象的な可視化を使って firstsecond の違いの性質と範囲を描写するものがある.
  • "AlignmentChart"firstsecond の要素を,要素がどのように並ぶのかを示す線で繋がれた点の列として描画する図表を表示する
    "ArrayPlot"要素の組み合されたリストを,セルの色で変更を示す配列プロットとして表示する
    "SideBySideSummary"firstsecond を彩色された配列セルの別々のシーケンスとして表示する.変更がないシーケンスは省略される
    "UnifiedSummary"firstsecond を彩色された配列セルの組み合されたシーケンスとして表示する.変更がないシーケンスは省略される
  • 以下は,format のその他の使用可能な値である.
  • "Details"各変更のテキストによる説明を生成する
    "DiffObjectViewer"インタラクティブな形式設定をパネルに表示する
    "Report"2つのノートブック式の違いのレポートを含むノートブックを作成する
    "SummaryBox"DiffObject要約ボックスとして表示する
  • format の値の中には式のタイプの下位区分にしか使えないものがある.
  • Diff[first,second][format]Diff[first,second,format]に等しい.

例題

すべて開くすべて閉じる

  (3)

2つのリストの差分を取る:

2つの文字列の差分を取る:

DiffObjectをプレーンな要約ボックスとしてフォーマットする:

スコープ  (5)

文字列を,一連の文字ではなく一連の単語として扱う:

2つのリストを順番や重複を無視して比較する:

2つのテキストファイルの異なる行を求める:

2つのセルの差分を取る:

2つのノートブックの差分を取る:

オプション  (15)

Appearance  (1)

結果の初期外観を指定する:

AppearanceElements  (1)

"Unified"フォーマットを使って,デフォルトで行番号を表示する:

AppearanceElementsから行番号を削除する:

DiffAlignmentMethod  (1)

ノートブックに異なるセルが続けて含まれているとき,Diffは最良の並べ方を試みる:

DiffAlignmentMethod"SequenceAlignment"としてこの機能を無効にすると,2つのセルのブロックが内部的な整列なしで単一の変更としてマークされる:

DiffGranularity  (1)

デフォルトで,文字列は一連の文字として比較される:

DiffGranularityを使って文字列を一連の行として扱う:

DiffIgnore  (2)

セルを比較する際,Diffはスタイルとオプションの変更も見付ける:

DiffIgnoreを使ってスタイルとオプションの変更をすべて無視する:

DiffIgnoreを使って特定のノートブックオプションを無視する:

DiffIncludeMatches  (3)

マッチする要素がたくさんあるとき,Diffはそれらすべては出力に含めない:

DiffIncludeMatchesTrueを使ってマッチする全要素を保存する:

DiffIncludeMatchesは,文字列についてのDiffObjectにも大きな影響を及ぼす:

差分の表示は,通常は,DiffObjectに含まれるすべてのマッチを表示する:

DiffInputFunction  (2)

任意の式のExpressionCellによる描画を比較する:

任意の式のInputForm文字列を比較する:

DiffStyle  (1)

Diffは,通常,デフォルトで,追加には緑,削除には赤を使う:

DiffStyleを使って特定の要素にスタイルを加える:

DefaultDiffStyle Noneと設定してデフォルトのスタイルを削除する:

ImageSize  (1)

フォーマットされたコンテンツに固定の高さを指定する:

ImageSizeAction  (1)

固定サイズに収まるように自動的に表示を小さくする:

Scrollbars  (1)

Scrollbars Automaticとして,必要な際にスクロールバーを表示する:

特性と関係  (5)

使用可能な特性のリストについてDiffObjectに尋ねる:

特定の特性を抽出する:

使用可能な形式についてDiffObjectに尋ねる:

特性の形式を表示する:

DiffObjectの初期形式を変える:

可視化を直接返す:

2つのリストが与えられると,DiffおよびSequenceAlignmentは同じ変更を見付けるが,表現の仕方は異なる:

DiffObjectからSequenceAlignmentを抽出する:

考えられる問題  (2)

Diffは,たとえファイルパスとして解釈できる場合でも,文字列は文字列として比較する:

ファイルのコンテンツを比較するときは,Fileを明示的に使うとよい:

Diffは型が異なるオブジェクトを比較しようとはしない:

おもしろい例題  (1)

リスト中のすべてのファイルペアの差分を取る:

Wolfram Research (2024), Diff, Wolfram言語関数, https://reference.wolfram.com/language/ref/Diff.html.

テキスト

Wolfram Research (2024), Diff, Wolfram言語関数, https://reference.wolfram.com/language/ref/Diff.html.

CMS

Wolfram Language. 2024. "Diff." Wolfram Language & System Documentation Center. Wolfram Research. https://reference.wolfram.com/language/ref/Diff.html.

APA

Wolfram Language. (2024). Diff. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/Diff.html

BibTeX

@misc{reference.wolfram_2024_diff, author="Wolfram Research", title="{Diff}", year="2024", howpublished="\url{https://reference.wolfram.com/language/ref/Diff.html}", note=[Accessed: 04-November-2024 ]}

BibLaTeX

@online{reference.wolfram_2024_diff, organization={Wolfram Research}, title={Diff}, year={2024}, url={https://reference.wolfram.com/language/ref/Diff.html}, note=[Accessed: 04-November-2024 ]}