GNU/Linux >> Linux Esercitazione >  >> Linux

Confronto di due file nel terminale Linux

se hai installato vim, prova questo:

vimdiff file1 file2

o

vim -d file1 file2

lo troverai fantastico.


Prova sdiff (man sdiff )

sdiff -s file1 file2

Se preferisci lo stile di output diff da git diff , puoi usarlo con il --no-index flag per confrontare i file non in un repository git:

git diff --no-index a.txt b.txt

Usando un paio di file con circa 200.000 stringhe di nomi di file ciascuno, ho eseguito un benchmark (con il time integrato comando) questo approccio rispetto ad alcune delle altre risposte qui:

git diff --no-index a.txt b.txt
# ~1.2s

comm -23 <(sort a.txt) <(sort b.txt)
# ~0.2s

diff a.txt b.txt
# ~2.6s

sdiff a.txt b.txt
# ~2.7s

vimdiff a.txt b.txt
# ~3.2s

comm sembra essere di gran lunga il più veloce, mentre git diff --no-index sembra essere l'approccio più rapido per l'output in stile diff.

Aggiornamento 25-03-2018 Puoi effettivamente omettere il --no-index flag a meno che tu non sia all'interno di un repository git e desideri confrontare i file non tracciati all'interno di quel repository. Dalle pagine man:

Questo modulo serve per confrontare i due percorsi dati sul filesystem. Puoi omettere l'opzione --no-index quando esegui il comando in un albero di lavoro controllato da Git e almeno uno dei percorsi punta all'esterno dell'albero di lavoro, o quando esegui il comando al di fuori di un albero di lavoro controllato da Git.


Ordinali e usa comm :

comm -23 <(sort a.txt) <(sort b.txt)

comm confronta i file di input (ordinati) e per impostazione predefinita restituisce tre colonne:righe che sono univoche per a, righe che sono univoche per b e righe che sono presenti in entrambi. Specificando -1 , -2 e/o -3 è possibile sopprimere l'output corrispondente. Pertanto comm -23 a b elenca solo le voci che sono univoche per a. Uso il <(...) sintassi per ordinare i file al volo, se sono già ordinati non è necessario.


Linux
  1. Copia i file nel terminale Linux

  2. Come unire due file di testo in Linux

  3. Visualizza due file affiancati

  4. Linux:confronta la struttura delle directory senza confrontare i file

  5. Caricamento di file sull'account S3 dalla riga di comando di Linux

Come trovare i file usando la riga di comando nel terminale Linux

8 metodi per rinominare più file contemporaneamente in Linux

Come visualizzare due file affiancati in Linux

Come confrontare due file nel terminale Linux

Come copiare file e directory nel terminale Linux

Utilizzo del comando Diff per confrontare due file nel terminale Linux