Crea diff tra due file in Linux

Crea diff tra due file in Linux
Questo articolo elencherà utili utility di comando e applicazioni grafiche che consentono di visualizzare "diff" o "differenza" tra due o due file. Queste applicazioni sono particolarmente utili se si desidera confrontare più versioni di uno stesso file per rivederne i progressi o tornare a vecchi contenuti nel caso in cui si desideri riutilizzare i dati precedenti archiviati nel file. Gli sviluppatori di software che utilizzano una sorta di sistema di controllo della versione utilizzano regolarmente gli strumenti Diff per confrontare il codice.

Comando grep

Grep è uno strumento di riga di comando che viene più comunemente utilizzato per trovare e abbinare il contenuto di testo usando i modelli. È possibile utilizzare i modelli GREP in vari modi per analizzare i dati di testo e ottenere corrispondenze. Uno di questi pattern Grep consente di visualizzare diffing tra due file. Supponendo che ci siano due file "file1" contenenti 1-5 numeri su ciascuna riga e e "file2" contenente 1-10 numeri su ciascuna riga, è possibile utilizzare il seguente comando GREP per visualizzare differente tra questi file:

$ grep -fxvf File1 file2

Dopo aver eseguito il comando sopra indicato, è necessario ottenere il seguente output:

6
7
8
9
10

L'interruttore "F" nel comando sopra considera i dati di testo come un elenco di stringhe fisse, ognuna di esse separate da una rottura della riga o una nuova riga. L'interruttore "X" corrisponde solo intere linee. L'interruttore "V" viene utilizzato per ottenere corrispondenze inverse. Puoi usarlo per selezionare le linee non corrispondenti. L'interruttore "F" viene utilizzato per ottenere modelli da un file, ogni modello è una nuova riga. Si noti che l'ordine degli argomenti è importante quando si utilizza il comando diff indicato sopra. Trova quelle righe che esistono in "File2" ma non esistono in "File1". Prova a eseguire il comando di seguito invertendo l'ordine del file, non otterrai output:

$ grep -fxvf file2 file1

Questo perché "file1" non ha alcuna riga diversa da "file2". Il comando GREP è disponibile per impostazione predefinita in tutte le principali distribuzioni Linux. Per ulteriori informazioni sul comando GREP, utilizzare i seguenti due comandi:

$ man grep
$ GREP -Help

Comando diff

Diff è un'utilità di riga di comando di comando che può essere utilizzata per confrontare la riga per riga. Il suo output suggerisce le righe che dovevano essere aggiunte o rimosse per abbinare entrambi i file tra loro. Utilizzando gli stessi file menzionati nell'esempio sopra, esegui il comando seguente:

$ diff file2 file1

Dovresti ottenere il seguente output:

6.10d5
< 6
< 7
< 8
< 9
< 10

L'output ti dice che per abbinare "file2" con file1, è necessario eliminare ("d") tutte le righe a partire dalla 6a riga alla decima riga per abbinare il secondo file fino alla 5a riga del primo file. Prova a invertire il comando:

$ Diff File1 File2

Dovresti ottenere il seguente output:

5a6,10
> 6
> 7
> 8
> 9
> 10

L'output ti dice che dopo la 5a riga, aggiungi ("a") da 6 a 10 righe a "file1" per abbinarlo a "file2". Puoi anche fare un confronto fianco a fianco utilizzando l'interruttore "Y".

Il comando diff è disponibile per impostazione predefinita nella maggior parte delle distribuzioni Linux. Per ulteriori informazioni, è possibile eseguire questi due comandi:

$ uomo diff
$ Diff - -Help

Meld

La MELD è un'applicazione grafica che può essere utilizzata per trovare differente tra due o più file e unire le modifiche allo stesso tempo. Può anche essere utilizzato per confrontare ricorsivamente i file in una directory, comprese le cartelle sotto il controllo della versione. La fusione indica visivamente quali modifiche devono essere apportate per abbinare due file da confrontare. Può anche mostrare in tempo reale differente mentre continui a modificare uno o entrambi i file.

Per installare Meld in Ubuntu, utilizzare il comando specificato di seguito:

$ sudo APT Installa Meld

MELD è disponibile nei repository predefiniti della maggior parte delle distribuzioni Linux, quindi puoi scaricarlo da Package Manager. Puoi anche ottenere più pacchetti e codice sorgente dalla sua home page.

Kompare

Kompare è un'applicazione gratuita e open source che può essere utilizzata per creare diff di due file e unire le modifiche per abbinare il loro contenuto. Sviluppato dal team KDE, può anche essere utilizzato per analizzare le directory in modo ricorsivo per confrontare le differenze tra i file. Kompare indica visivamente diff tra due file e puoi anche usarlo per creare e applicare le patch.

Per installare Kompare in Ubuntu, utilizzare il comando specificato di seguito:

$ sudo apt install kompare

Kompare è disponibile nei repository predefiniti della maggior parte delle distribuzioni Linux, quindi è possibile scaricarlo dal gestore di pacchetti. Puoi ottenere più pacchetti e codice sorgente dalla sua pagina web. Un pacchetto snap è disponibile anche qui.

Comando Git Diff

Git è uno dei sistemi di controllo della versione distribuita più utilizzati e popolari. Viene fornito con molte utility della riga di comando, incluso un comando "diff" che può essere utilizzato per confrontare due file. È possibile utilizzare questo comando per confrontare ampiamente due file anche se non si utilizza il controllo della versione GIT e viene fornito con numerose opzioni di riga di comando per modificare il comportamento degli algoritmi Diff. Nella sua forma più semplice, è possibile eseguire questo comando per confrontare due file:

$ git diff file1 file2

L'output colorato con il segno "+" mostra linee aggiuntive disponibili in "File2". Per installare Git e Git Diff in Ubuntu, utilizzare il comando specificato di seguito:

$ sudo APT Installa git

GIT Diff fa parte del pacchetto GIT ed è disponibile nei repository predefiniti della maggior parte delle distribuzioni Linux, quindi puoi scaricarlo dal gestore dei pacchetti. Per ulteriori informazioni su Git Diff, utilizzare i seguenti due comandi:

$ man git diff
$ git diff - -help

Kdiff3

Kdiff3 è un altro strumento GUI Diff creato dal team KDE. Viene fornito con tutte le campane e i fischi che ti aspetteresti da uno strumento Diff. Può confrontare file e directory e unire automaticamente le modifiche se scelto. Viene inoltre fornito con un editor integrato e indica visivamente quali modifiche devono essere apportate per abbinare i file e rimuovere le differenze.


(Fonte di immagine)

Per installare Kdiff3 in Ubuntu, utilizzare il comando specificato di seguito:

$ sudo apt install kdiff3

KDIFF3 è disponibile nei repository predefiniti della maggior parte delle distribuzioni Linux, quindi puoi scaricarlo dal pacchetto gestore. Puoi ottenere più pacchetti e codice sorgente dalla sua pagina web.

Conclusione

Queste sono alcune delle righe di comando più utili e delle utility grafiche che possono essere utilizzate per confrontare più file. Questi strumenti Diff forniscono un buon modo per tracciare le modifiche al file, unire le differenze e creare patch. Puoi anche usarli per ripristinare manualmente i file nel loro stato precedente se si verifica.