Visualisez deux fichiers texte en même temps côte à côte


21

J'ai deux fichiers texte. Chaque ligne représente une ligne dans une langue. Je dois vérifier si l'alignement correspond toujours. Par conséquent, j'ai besoin d'un programme qui affiche les deux fichiers texte en même temps avec des numéros de ligne.

J'ai essayé de diffuser, mais cela essaie d'aligner les fichiers - si par accident deux lignes sont égales, toute la comparaison visuelle ligne par ligne ne fonctionne pas.

Réponses:


28

Utilisez Vim, avec scrollbindset. Par exemple:

vim -O +'windo set scrollbind' /etc/profile /etc/profile.pacnew

entrez la description de l'image ici

Avec scrollbind, si vous faites défiler dans une fenêtre, les autres fenêtres liées défilent également en même temps. Pour avoir des numéros de ligne, un ~/.vimrccontenant au moins les deux lignes suivantes suffit:

set nocompatible
set number

Non pas que vous avez besoin d' un vimrcpour cela - il peut être fait entièrement à partir de la ligne de commande:

vim -NO +'set nu' +'windo set scrollbind' file1 file2 ...

12

Que diriez-vous d'une commande des premiers jours d'Unix?

pr -m file1 file2

Par exemple:

pr  -m English Spanish

2016-01-18 00:34                                                  Page 1

this is something                esto es algo
hello, there                     Hola

Mise à jour: vous pouvez adapter la sortie à la taille de votre terminal en utilisantless

pr -m file1 file2 | less

4
Si je peux le suggérer, dirigez la sortie vers less -Npour afficher les numéros de ligne ensemble. pr -m file1 file2 | less -N.
Sergiy Kolodyazhnyy

11

Depuis l'interface graphique, vous pouvez essayer meld:

capture d'écran

Ce n'est pas exactement ce que vous demandez, mais cela devrait être tout aussi utile pour votre objectif.

Des sections de texte supplémentaires seront surlignées en vert, différentes sections de texte seront surlignées en bleu (et de même dans différentes sections de texte, des caractères supplémentaires seront surlignés en bleu foncé).

Fonctionne également pour plus de deux fichiers à la fois.


J'aime et utilise meld, kdiff3, même sdiff; mais si je veux juste afficher deux fichiers côte à côte qui sont (supposés être) différents (par exemple, les ensembles de ressources de traduction i18n - la propriété correspond, la valeur ne correspond pas; recherche des propriétés manquantes), alors les tentatives d'alignement correspondent lignes et marques de lignes différentes est en fait un point négatif.
michael

@michael_n Je ne sais pas pourquoi ce serait négatif. Peut-être que je manque le point, mais si vous utilisez, meldvous devriez avoir remarqué que dans des cas comme le cas où vous décrivez les lignes sont surlignées en bleu clair et les caractères supplémentaires spécifiques dans un bleu plus foncé, faisant la différence exacte qui apparaît instantanément . Ou est-ce que je manque quelque chose?
kos

Vous avez absolument raison, et j'aurais dû clarifier; le problème est que ces outils ne disposent d' une option de configuration pour attendre et permettre que certaines différences doivent être là (afaik). Dans certains cas, ils considèrent le fichier entier trop différent pour prendre la peine de s'aligner. Par exemple, une option utile (avec mon exemple: msg.text = "Hello" vs msg.text = "Bonjour") serait d'ignorer une partie des deux fichiers par "first N chars", ou regexp: "^. * = "
michael

En fait, je pense que sdiff a une option à ignorer par regexp (mais je ne suis pas positif). Pourtant, s'il ne s'agit que de texte de forme libre en français et en anglais, il n'est pas nécessaire de mettre en évidence quoi que ce soit, et toute tentative de mise en correspondance des lignes - comme je l'ai mentionné - serait négative. Parfois, nous voulons juste voir les fichiers côte à côte (et c'est l'essence de la question d'origine, si j'ai bien compris).
michael

@michael_n En fait, je viens de remarquer la comparaison des langues, pour une raison quelconque, au début, je pensais qu'ils avaient besoin d'un outil de comparaison de texte plus général. Vous avez probablement raison, je devrais supprimer cela, bien que je considère également que les questions intitulées de manière aussi générique que celle-ci attirent généralement beaucoup de visites des moteurs de recherche (par exemple, si je "file côte à côte Ubuntu" sur Google, c'est actuellement la troisième résultat). Alors peut-être qu'il vaut mieux que cela reste dans ce cas. Après tout, cela ne devrait pas faire de mal. La ou les réponses exactes font déjà le haut de la pile.
kos


0

Si vous cherchez des traductions, Poedit pourrait vous être utile. Il peut afficher les deux textes côte à côte pour vous et est conçu pour travailler avec des traductions.


1
au lieu de simplement coller des liens vers la solution, vous devez également l'expliquer «comment»
Edward Torvalds

Celui-ci semble se limiter à travailler avec gettext.
carnendil
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.