2010-01-31 5 views
3

Existe-t-il des utilitaires linux de ligne de commande qui me donneront la différence booléenne entre deux fichiers texte?Booléen Différence entre les fichiers texte sous Linux?

Signification:

File-A:

Apple 
Pear 
Orange 
Banana 

File-B:

Pear 
Orange 

Courir

% program File-A File-B -o output 

sortie:

Apple 
Banana 

Edit:

Impressionnant, merci les gars!

+1

Je compte ce que la programmation de script shell. – bmargulies

+0

Pourrait-il y avoir des éléments dans le fichier 2 qui ne sont pas dans le fichier 1? Si non, pourquoi l'appelez-vous la «différence booléenne»? –

+0

vrai, je n'ai pas pensé à ça .. merci pour la pointe – noli

Répondre

3

Comme ceci:

comm -2 -3 File-A File-B > output 

Cela suppose que les fichiers sont triés. Vérifiez man comm pour plus d'informations.

+1

Pour les trier (syntaxe bash): 'comm -3 <(sort -u Fichier-A) <(sort -u Fichier-B)' – Tobu

+0

Hey , c'est propre. J'apprends quelque chose de nouveau tous les jours ici: D – Thomas

1

La commande comm est ce que vous voulez ici.

0

Essayez ceci:

comm -3 file1.txt file2.txt | sed -r 's/^\t//' 

Cette capture également des articles dans fichier2 qui ne sont pas dans le fichier 1.

Questions connexes