Visualizza due file di testo contemporaneamente fianco a fianco


21

Ho due file di testo. Ogni riga rappresenta una riga in una lingua. Devo verificare se l'allineamento si adatta sempre. Pertanto ho bisogno di un programma che visualizzi entrambi i file di testo contemporaneamente con i numeri di riga.

Ho provato a diffondere, ma questo tenta di allineare i file - se per caso due linee sono uguali, il confronto visivo dell'intera linea non funziona.

Risposte:


28

Usa Vim, con scrollbindset. Per esempio:

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

inserisci qui la descrizione dell'immagine

Con scrollbind, se si scorre in una finestra, anche le altre finestre associate scorrono contemporaneamente. Per avere numeri di riga, ~/.vimrcè sufficiente contenere almeno due delle seguenti righe:

set nocompatible
set number

Non che ti serva un vimrcper questo - può essere fatto interamente dalla riga di comando:

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

12

Che ne dici di un comando fin dai primi giorni di Unix?

pr -m file1 file2

Per esempio:

pr  -m English Spanish

2016-01-18 00:34                                                  Page 1

this is something                esto es algo
hello, there                     Hola

Aggiornamento: è possibile adattare l'output alle dimensioni del terminale utilizzandoless

pr -m file1 file2 | less

4
Se posso suggerirlo, reindirizza l'output a less -Nper mostrare insieme i numeri di riga. pr -m file1 file2 | less -N.
Sergiy Kolodyazhnyy,

11

Dalla GUI puoi provare meld:

immagine dello schermo

Non è esattamente quello che stai chiedendo, ma dovrebbe essere altrettanto utile per il tuo scopo.

Ulteriori sezioni di testo saranno evidenziate in verde, diverse sezioni di testo saranno evidenziate in blu (e allo stesso modo in diverse sezioni di testo i caratteri aggiuntivi verranno evidenziati in un blu più scuro).

Funziona anche per più di due file alla volta.


Mi piace e uso meld, kdiff3, persino sdiff; ma se voglio solo vedere due file fianco a fianco che sono (presumibilmente) diversi (ad esempio, i pacchetti di risorse di traduzione i18n - la proprietà corrisponde, il valore no; cerca le proprietà mancanti), quindi i tentativi di allineare la corrispondenza linee e segnare linee diverse è in realtà un aspetto negativo.
michael

@michael_n Non riesco a capire perché sarebbe negativo. Forse mi manca il punto, ma se usi melddovresti aver notato che in casi come il caso stai descrivendo le linee sono evidenziate in un blu più chiaro e i caratteri aggiuntivi specifici in un blu più scuro, facendo la differenza esatta che emerge all'istante . Oppure mi sfugge qualcosa?
kos

Hai assolutamente ragione, e avrei dovuto chiarire; il problema è che questi strumenti non hanno un'opzione di configurazione per aspettare e permettere che certe differenze dovrebbero essere lì (afaik). In alcuni casi, considerano l'intero file troppo diverso per persino preoccuparsi di allinearsi. Ad esempio, un'utile opzione (con il mio esempio: msg.text = "Hello" vs msg.text = "Bonjour") sarebbe quella di ignorare parte dei due file con "first N chars", o regexp: "^. * = "
michael

In realtà, penso che sdiff abbia un'opzione da ignorare con regexp (ma non sono positivo). Tuttavia, se si tratta solo di un testo in formato libero dal francese e dall'inglese, non è necessario evidenziare nulla e qualsiasi tentativo di abbinare le righe - come ho già detto - sarebbe negativo. A volte, vogliamo solo vedere i file fianco a fianco (e questa è l'essenza della domanda originale, come ho capito).
michael

@michael_n In realtà ho appena notato la cosa del confronto linguistico, per qualche motivo inizialmente pensavo che avessero bisogno di uno strumento di confronto del testo più generico. Probabilmente hai ragione, dovrei eliminare questo, anche se sto anche considerando che le domande intitolate in modo generico come questo di solito attirano molte visite dai motori di ricerca (ad esempio se io "File side by side Ubuntu" di Google questo è attualmente il terzo risultato). Quindi forse è meglio se rimane in questo caso. Dopotutto non dovrebbe far male. Le risposte esatte fanno già la parte superiore dello stack.
kos


0

Se stai guardando le traduzioni potresti trovare utile Poedit . Può visualizzare i due testi fianco a fianco per te ed è fatto per lavorare con le traduzioni.


1
invece di incollare i collegamenti alla soluzione, dovresti spiegare anche "come"
Edward Torvalds,

Questo sembra essere limitato al lavoro con gettext.
carnendil,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.