Ver dos archivos de texto al mismo tiempo uno al lado del otro

21

Tengo dos archivos de texto. Cada línea representa una línea en un idioma. Necesito verificar si la alineación siempre se ajusta. Por lo tanto, necesito un programa que muestre ambos archivos de texto al mismo tiempo con números de línea.

Intenté difuso, pero eso intenta alinear los archivos: si por accidente dos líneas son iguales, toda la comparación visual en línea no funciona.

usuario1406177
fuente

Respuestas:

28

Usa Vim, con scrollbindset. Por ejemplo:

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

ingrese la descripción de la imagen aquí

Con scrollbind, si se desplaza en una ventana, las otras ventanas enlazadas también se desplazan al mismo tiempo. Para tener números de línea, ~/.vimrcbasta con un mínimo de las siguientes dos líneas:

set nocompatible
set number

No es que necesite un vimrcpara esto, se puede hacer completamente desde la línea de comandos:

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

¿Qué tal un comando de los primeros días de Unix?

pr -m file1 file2

Por ejemplo:

pr  -m English Spanish

2016-01-18 00:34                                                  Page 1

this is something                esto es algo
hello, there                     Hola

Actualización: puede ajustar la salida al tamaño de su terminal utilizandoless

pr -m file1 file2 | less
Edward Torvalds
fuente
44
Si puedo sugerir eso, canalice la salida a less -Npara mostrar los números de línea juntos. pr -m file1 file2 | less -N.
Sergiy Kolodyazhnyy
11

Desde la GUI puedes probar meld:

captura de pantalla

No es exactamente lo que está pidiendo, pero debería ser tanto como útil para su propósito.

Las secciones adicionales de texto se resaltarán en verde, las diferentes secciones de texto se resaltarán en azul (y del mismo modo en diferentes secciones del texto, los caracteres adicionales se resaltarán en un azul más oscuro).

Funciona también para más de dos archivos a la vez.

kos
fuente
Me gusta y uso meld, kdiff3, incluso sdiff; pero si solo quiero ver dos archivos uno al lado del otro (se supone que son) diferentes (por ejemplo, paquetes de recursos de traducción i18n: la propiedad coincide, el valor no; buscando propiedades faltantes), entonces los intentos de alinear coincidencias Las líneas y las líneas de marca que son diferentes son en realidad negativas.
michael
@michael_n No puedo entender por qué eso sería negativo. Tal vez me estoy perdiendo el punto, pero si lo usa meld, debería haber notado que en casos como el que está describiendo, las líneas se resaltan en un azul más claro y los caracteres adicionales específicos en un azul más oscuro, lo que hace que la diferencia exacta salga al instante . ¿O me estoy perdiendo algo?
kos
Tienes toda la razón, y debería haberte aclarado; el problema es que estas herramientas no tienen una opción de configuración a esperar y permitir que ciertas diferencias deberían estar allí (que yo sepa). En algunos casos, consideran que todo el archivo es demasiado diferente como para molestarse en alinearse. Por ejemplo, una opción útil (con mi ejemplo: msg.text = "Hello" vs msg.text = "Bonjour") sería ignorar parte de los dos archivos mediante "primeros caracteres N" o regexp: "^. * = "
michael
En realidad, creo que sdiff tiene una opción para ignorar por regexp (pero no soy positivo). Aún así, si solo se trata de texto en formato libre del francés y el inglés, no hay necesidad de resaltar nada, y cualquier intento de unir líneas, como mencioné, sería negativo. A veces, solo queremos ver archivos uno al lado del otro (y esa es la esencia de la pregunta original, tal como la entendí).
Michael
@michael_n En realidad, acabo de darme cuenta de la comparación de idiomas, por alguna razón inicialmente pensé que necesitaban una herramienta de comparación de texto de propósito más general. Probablemente tengas razón, debería eliminar esto, aunque también estoy considerando que las preguntas tituladas de forma tan genérica como esta generalmente atraen muchas visitas de los motores de búsqueda (por ejemplo, si busco en Google "lado a lado Ubuntu", esta es actualmente la tercera resultado). Entonces quizás sea mejor si se queda en este caso. Después de todo, no debería doler. Las respuestas exactas ya están en la parte superior de la pila.
kos
5

En la línea de comando puedes usar

 paste file1 file2 | less -N
Florian Diesch
fuente
0

Si está buscando traducciones, puede encontrar útil Poedit . Puede mostrar los dos textos uno al lado del otro y está hecho para trabajar con traducciones.

Cargando por favor espere
fuente
1
en lugar de simplemente pegar enlaces a la solución, también debería explicarlo 'cómo'
Edward Torvalds
Este parece estar limitado a trabajar con gettext.
carnendil