From 96122eb0e9464defff34c582968a506c948af98c Mon Sep 17 00:00:00 2001 From: piccihud Date: Sat, 11 Mar 2023 19:06:43 +0100 Subject: [PATCH] add diff.md --- diff.md | 72 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 72 insertions(+) create mode 100644 diff.md diff --git a/diff.md b/diff.md new file mode 100644 index 0000000..54db212 --- /dev/null +++ b/diff.md @@ -0,0 +1,72 @@ +# Confrontare file + +Il comando `diff` confronta due file e produce una lista delle loro differenze. Per essere più precisi, produce un elenco delle modifiche che dovrebbero essere apportate al primo file, per farlo corrispondere al secondo file. + +```bash +diff file1 file2 +``` +Ecco un esempio: + +```bash + > cat file1 +file1 + + > cat file2 +file2 +file3 +file1 + + > diff file1 file2 +0a1,2 +> file2 +> file3 +``` + +Ogni differenza è elencata a sua volta in una singola colonna e ogni differenza viene etichettata. L'etichetta è composta da due numeri che circondano una lettera, come nell'esempio `0a1`. +Il primo numero è il numero di riga in file1, e il secondo numero è il numero di riga in file2. La lettera nel mezzo può essere: + +- `c`: la riga nel primo file deve essere modificata per corrispondere alla riga nel secondo file; +- `d`: la riga nel primo file deve essere eliminata; +- `a`: il contenuto extra deve essere aggiunto al primo file per farlo corrispondere al secondo file. + +I parametri `-s` e `-q` indicano, rispettivamente, se i due file sono identici ovvero differenti: + +```bash + > diff -s file2 file3 +I file file2 e file3 sono identici + + > diff -q file1 file2 +I file file1 e file2 sono diversi +``` + +## Una vista alternativa + +```bash + > diff -y -W 70 file1 file3 + > file2 + +file5 | file3 +file1 file1 +file4 < +``` +L'opzione `-y` (side by side) utilizza un layout diverso per mostrare le differenze tra i file. Spesso è conveniente specificare la larghezza `-W` per limitare il numero di colonne visualizzate. + +Il primo file viene visualizzato a sinistra mentre il secondo è mostrato sulla destra. Le righe di ogni file vengono visualizzate fianco a fianco. +Ci sono caratteri indicatori accanto alle varie righe: + +- `|`: una riga che è differente nel secondo file; +- `<`: una riga che non è presente nel secondo file; +- `>`: una riga che non è presente nel primo file + +## Uno spruzzo di colore + +```bash +sudo apt-get install colordiff +``` + +Il comando `colordiff` aggiunge colore all'output di `diff`. + +## Collegamenti + +- [https://www.howtogeek.com/410532/how-to-compare-two-text-files-in-the-linux-terminal/](https://www.howtogeek.com/410532/how-to-compare-two-text-files-in-the-linux-terminal/) +- [https://linuxhandbook.com/compare-directories/](https://linuxhandbook.com/compare-directories/)