2つのファイルの比較

2つのファイルの比較

主な部分は似ていますが、混乱している2つのファイルを比較する方法を提案してください。例:

A file持つ

72444 55555
72445 55666
55666 72446

B File持つ

72444 55555
55666 72446
72445 55666
xxxxx yyyyy

そのため、出力ファイルファイルとエラーが発生したファイル名の違いを取得したいと思います。上記の残りの部分が同じであれば、おそらく次のようになります。

B File xxxxx yyyyy

ベストアンサー1

このcommユーティリティは、2つのファイルのいずれかに固有であるか、または両方のファイルに共通の行を抽出できます。このユーティリティを使用するには両方のファイルを並べ替える必要があるため、「複雑な行」の問題が解決されます。

ユーティリティcommのデフォルト出力は、タブで区切られた3つの列で構成されています。

  1. 最初のファイルでのみ行が見つかります。
  2. 2番目のファイルでのみ行が見つかります。
  3. 両方のファイルで行が見つかりました。

列を有効-1または無効にできます。-2-3

ここでは、2つのプロセス置換を使用してソートされた入力データを生成し、2つのファイルに固有のデータであるcomm最初の2つの列のみを表示するように要求します。

$ comm -3 <(sort fileA) <(sort fileB)
        xxxxx yyyyy
$ comm -3 <(sort fileA) <(sort fileB) | cut -f 2-
xxxxx yyyyy

見てわかるように、2番目の列は何かを含む唯一の列なので、この行はxxxxx yyyyyのみに表示されfileB、他のすべての行は2つのファイルに共通であると結論付けることができます。

それ以外の場合は、3-3番目の列でも共通点を確認できます。

$ comm <(sort fileA) <(sort fileB)
                55666 72446
                72444 55555
                72445 55666
        xxxxx yyyyy

おすすめ記事