并排同时查看两个文本文件


21

我有两个文本文件。每行代表一种语言的一行。我需要检查对齐方式是否始终适合。因此,我需要一个程序以行号同时显示两个文本文件。

我尝试了漫反射,但是尝试对齐文件-如果偶然两行相等,则整个行方向的视觉比较将不起作用。

Answers:


28

scrollbindset 一起使用Vim 。例如:

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

在此处输入图片说明

使用scrollbind,如果您在一个窗口中滚动,则其他绑定的窗口也会同时滚动。要具有行号,只需~/.vimrc包含至少以下两行即可:

set nocompatible
set number

这并不是说你需要vimrc本-它完全可以从命令行来完成:

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

12

Unix早期的命令怎么样?

pr -m file1 file2

例如:

pr  -m English Spanish

2016-01-18 00:34                                                  Page 1

this is something                esto es algo
hello, there                     Hola

更新:您可以通过使用以下命令使输出适合终端的大小less

pr -m file1 file2 | less

4
如果我可以建议的话,请将输出传递less -N给一起显示行号。 pr -m file1 file2 | less -N
Sergiy Kolodyazhnyy,2016年

11

从GUI您可以尝试meld

屏幕截图

这并不是您所要的,但对于您的目的而言,它应该同样有用。

文本的其他部分将以绿色突出显示,文本的不同部分将以蓝色突出显示(同样,文本的不同部分中的其他字符将以深蓝色突出显示)。

一次还可以处理两个以上的文件。


我喜欢并使用Meld,kdiff3甚至sdiff;但是,如果我只是想并排查看两个(假设是)不同的文件(例如,i18n翻译资源包-属性匹配,值不匹配;寻找缺少的属性),则尝试排队匹配线和标记线不同实际上是负面的。
迈克尔

@michael_n我不知所措,为什么这将是负面的。也许我错过了要点,但是如果您使用它,meld您应该已经注意到,在类似情况下,您要描述的行以浅蓝色突出显示,特定的其他字符以深蓝色突出显示,从而立即产生确切的区别。还是我错过了什么?
kos

你是绝对正确的,我应该澄清一下;问题是,这些工具没有一个配置选项,以期待并允许一定的差异应该在那里(据我所知)。在某些情况下,他们认为整个文件太过不同,以至于无法排队。例如,一个有用的选项(以我的示例为例:msg.text =“ Hello” vs msg.text =“ Bonjour”)将通过“前N个字符”或regexp忽略两个文件的一部分:“ ^。* =“
迈克尔

实际上,我认为sdiff确实可以忽略正则表达式(但我不是很肯定)。不过,如果只是法语和英语的自由格式文本,则无需突出显示任何内容,并且任何匹配行的尝试(如我所提到的)都是负面的。有时,我们只是想并排查看文件(据我所知,这就是原始问题的本质)。
迈克尔

@michael_n实际上我只是注意到语言比较的事情,出于某种原因,起初我以为他们需要一个更通用的文本比较工具。也许您是正确的,我应该删除此问题,尽管我也考虑了标题为一般性的问题,因为该问题通常会吸引搜索引擎的大量访问(例如,如果我使用Google“并排Ubuntu”文件,则当前是第三个问题)结果)。因此,如果在这种情况下坚持下去可能会更好。毕竟不应该伤害。确切的答案已经成为堆栈的顶部。
kos


0

如果您正在寻找翻译,Poedit可能会有用。它可以为您并排显示两个文本,是为翻译而设计的。


1
而不是仅粘贴解决方案的链接,您还应该解释它“如何”
Edward Torvalds

这似乎仅限于使用gettext。
carnendil '16
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.