GNU/Linux >> Tutoriels Linux >  >> Linux

Sortie Les lignes communes (similitudes) de deux fichiers texte (l'opposé de Diff) ?

Diff est un excellent outil pour afficher les changements entre deux fichiers. Mais comment afficher les similitudes de deux fichiers texte (tout en ignorant les différences) ?

C'est à dire. exemple d'entrée :

a:
Foo Bar
X
Hello
World
42

b:
Foo Baz
Hello
World
23

Pseudo sortie (quelque chose comme ça) :

@@ 2,3
=Hello World

Il ne suffit pas de trier les deux fichiers et d'utiliser comm, car dans ce cas, les informations de ligne sont perdues.

Réponse acceptée :

Que diriez-vous d'utiliser diff, même si vous ne voulez pas de diff ? Essayez ceci :

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

Voici ce que j'obtiens avec vos exemples de données :

$ 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. Comment joindre deux fichiers texte sous Linux

  2. Diff signale que deux fichiers diffèrent, bien qu'ils soient identiques ! ?

  3. Extraire du texte entre deux lignes spécifiques ?

  4. Comment stocker le résultat de diff sous Linux

  5. Afficher deux fichiers côte à côte

Rechercher du texte sur la sortie du terminal ?

Utilisation de la commande Diff pour comparer deux fichiers dans un terminal Linux

Comparer deux fichiers dans un terminal Linux

Comment faire la différence (uniquement les ajouts) entre deux fichiers sous Linux

Comment puis-je obtenir des mots entre les deux premières instances de texte/motif ?

Comment différencier uniquement la première ligne de deux fichiers?