GNU/Linux >> Linux の 問題 >  >> Linux

2つのテキストファイル(差分の反対側)の共通行(類似点)を出力しますか?

Diffは、2つのファイル間の変更を表示するための優れたツールです。しかし、2つのテキストファイルの類似点を(相違点を無視して)表示するにはどうすればよいですか?

つまりサンプル入力:

a:
Foo Bar
X
Hello
World
42

b:
Foo Baz
Hello
World
23

疑似出力(このようなもの):

@@ 2,3
=Hello World

両方のファイルを並べ替えてcommを使用するだけでは不十分です。その場合、回線情報が失われるためです。

承認された回答:

差分が必要ない場合でも、差分を使用するのはどうですか?これを試してください:

diff --unchanged-group-format='@@ %dn,%df 
  %<' --old-group-format='' --new-group-format='' 
  --changed-group-format='' a.txt b.txt

サンプルデータで得られるものは次のとおりです。

$ cat a.txt 
Foo Bar
X
Hello
World
42
$ cat b.txt 
Foo Baz
Hello
World
23
$ diff --unchanged-group-format='@@ %dn,%df
%<' --old-group-format='' --new-group-format='' 
  --changed-group-format='' a.txt b.txt
@@ 2,3
Hello
World

Linux
  1. Linuxで2つのファイルの違い(追加のみ)を取得する方法

  2. 2 つの XML ファイルを比較するにはどうすればよいですか?

  3. 非常に大きなテキスト ファイルの最後の 2 行を効率的に削除する

  1. 複数のファイルの拡張子を変更するにはどうすればよいですか?

  2. 2つのファイル間の共通行?

  3. 2 つのファイルの最初の行だけを比較するには?

  1. Linuxで2つのテキストファイルを結合する方法

  2. Diffは、2つのファイルが同じであるにもかかわらず、異なると報告します!?

  3. 2 つのファイルを並べて表示する