2011-01-03 3 views
0

ように、どのように私は2つのファイルをdiffをすることができます:私は空白のいずれかの種類(-bオプション) 、UNIXのdiffの特別なオプション

  • 気にしないでください

    1. 私はコンテンツの位置を気にしないでください。 (??)

    上記の2つの意味は:on line1とb on line2のファイルは、line1のbとline2のbを持つ別のファイルと同じです。

    質問がまだ明確でない場合は教えてください。

    ありがとうございました。

  • 答えて

    1

    最初に2つのファイルを並べ替えてからdiffします。 diffには、aとbの行はどのような意味でも互換性があると説得する方法はありません。注文は非常に重要です。コメントを

    編集 - diffのような

    ツールは、単に注文したラインを越えた、より高いレベルの意味を理解していません。あなたは、あなたのファイルをそれらのより高いレベルのコンセプト(行ごとに1つ)に変換するツールを書こうと思うかもしれません。おそらくdiffが処理することができます。ファイル全体をソートすることはできないので、「順序は関係ありません」という小さなセクションを並べ替えることもできます。

    最後のファイルは、必ずしも適切なファイル形式(元の構文と互換性があります)でなくても、探している相違点を使用するだけで十分ですdiffのようなシェルフツールを活用する。

    例:

    ファイル1:

    block thing { 
        a 
        b 
    } 
    
    block thing 2 { 
        c 
        d 
    } 
    

    ファイル2:

    block thing { 
        b 
        c 
        a 
    } 
    
    block thing 3 { 
        f 
        e 
    } 
    

    は、ファイル1の "ソート":

    :ファイル2を "ソート"
    block thing { 
        a 
        b 
    } 
    
    block thing 2 { 
        c 
        d 
    } 
    

    最後に
    block thing { 
        a 
        b 
        c 
    } 
    
    block thing 3 { 
        e 
        f 
    } 
    

    、理想的に、あなたはブロック3は、私が理解し何を確認し、「新しい」だけでなく、ブロック1

    +0

    で「C」のおかげウィル、であることがわかります。私はそれを並べ替えることはできません。私が使用できるdiff以外のものはありますか?つまり、それは可能ですか? – hari

    +0

    データをソートできないのはなぜですか? Perlを使って別々のファイルを別々の構造にスラッシングし、次に比較を行うことができます。おそらくパフォーマンス上の理由を除いては実際には必要ではないにしても、ソートしてください。 –

    +0

    最初にソートされた入力を処理している場合、 'comm'は' diff'より速くなります。 – ephemient

    関連する問題