Ejemplos de comandos sdiff de Linux para principiantes de Linux


En uno de nuestros artículos anteriores, hemos explicado acerca de las 9 mejores herramientas de comparación y diferencia de archivos (Diff) para sistemas Linux. Enumeramos una combinación de herramientas de línea de comandos y GUI para comparar y encontrar diferencias entre archivos, cada uno con ciertas características notables. Otra utilidad de diferencias útil para Linux se llama sdiff .

sdiff es una sencilla utilidad de línea de comandos para mostrar las diferencias entre dos archivos y combinarlos de forma interactiva. Es fácil de usar y viene con opciones de uso sencillas como se explica a continuación.

La sintaxis para usar sdiff es la siguiente.

$ sdiff option... file1 file2

Mostrar la diferencia entre dos archivos en Linux

1. La forma más fácil de ejecutar sdiff es proporcionar los dos nombres de archivos que intentas comparar. Mostrará la diferencia combinada de lado a lado como se muestra en la siguiente captura de pantalla.

$ cal >cal.txt
$ df -h >du.txt
$ sdiff du.txt cal.txt

Tratar todos los archivos como archivos de texto

2. Para tratar todos los archivos como texto y compararlos línea por línea, ya sean archivos de texto o no, use la marca -a

$ sdiff -a du.txt cal.txt

Filesystem      Size  Used Avail Use% Mounted on	      |	     April 2018       
udev            3.9G     0  3.9G   0% /dev		      |	Su Mo Tu We Th Fr Sa  
tmpfs           788M  9.7M  779M   2% /run		      |	 1  2  3  4  5  6  7  
/dev/sda10      324G  265G   43G  87% /			      |	 8  9 10 11 12 13 14  
tmpfs           3.9G  274M  3.6G   7% /dev/shm		      |	15 16 17 18 19 20 21  
tmpfs           5.0M  4.0K  5.0M   1% /run/lock		      |	22 23 24 25 26 27 28  
tmpfs           3.9G     0  3.9G   0% /sys/fs/cgroup	      |	29 30                 
/dev/loop2       82M   82M     0 100% /snap/core/4206	      |	                      
/dev/loop4      181M  181M     0 100% /snap/vlc/190	      <
/dev/loop1       87M   87M     0 100% /snap/core/4407	      <
/dev/loop0      189M  189M     0 100% /snap/vlc/158	      <
/dev/loop3       83M   83M     0 100% /snap/core/4327	      <
cgmfs           100K     0  100K   0% /run/cgmanager/fs	      <
tmpfs           788M   40K  788M   1% /run/user/1000	      <

Ignorar pestañas y espacios en blanco

3. Si tiene archivos con demasiado espacio en blanco, puede decirle a sdiff que ignore todos los espacios en blanco mientras compara utilizando el interruptor -W .

$ sdiff -W du.txt cal.txt

4. También puede decirle a sdiff que ignore cualquier espacio en blanco al final de la línea usando la opción -z .

$ sdiff -z du.txt cal.txt

5. Además, puede indicar a sdiff que ignore los cambios debidos a la expansión de la pestaña con el indicador -E .

$ sdiff -E du.txt cal.txt

Ignorar el caso al comparar la diferencia

6. Para ignorar mayúsculas y minúsculas (donde sdiff trata mayúsculas y minúsculas como iguales), use la opción -i como se muestra.

$ sdiff -i du.txt cal.txt

Ignorar líneas en blanco al comparar diferencias

7. La opción -B ayuda a ignorar las líneas en blanco en los archivos.

$ sdiff -B du.txt cal.txt

Definir el número de columnas a la salida

8. sdiff le permite configurar el número de columnas que se imprimirán (el valor predeterminado es 130 ), mediante el uso de -w cambiar de la siguiente manera.

$ sdiff -w 150 du.txt cal.txt

Expandir pestañas a espacios

9. Para expandir las pestañas a espacios en salida, use la opción -t .

$ sdiff -t du.txt cal.txt

Ejecutar sdiff interactivamente

10. El indicador -o le permite ejecutarse de forma más interactiva y enviar la salida a un archivo. En este comando, la salida se enviará al archivo sdiff.txt , presione Enter después de ver el signo % para obtener el menú interactivo .

$ sdiff du.txt cal.txt -o sdiff.txt

Filesystem      Size  Used Avail Use% Mounted on	      |	     April 2018       
udev            3.9G     0  3.9G   0% /dev		      |	Su Mo Tu We Th Fr Sa  
tmpfs           788M  9.7M  779M   2% /run		      |	 1  2  3  4  5  6  7  
/dev/sda10      324G  265G   43G  87% /			      |	 8  9 10 11 12 13 14  
tmpfs           3.9G  274M  3.6G   7% /dev/shm		      |	15 16 17 18 19 20 21  
tmpfs           5.0M  4.0K  5.0M   1% /run/lock		      |	22 23 24 25 26 27 28  
tmpfs           3.9G     0  3.9G   0% /sys/fs/cgroup	      |	29 30                 
/dev/loop2       82M   82M     0 100% /snap/core/4206	      |	                      
/dev/loop4      181M  181M     0 100% /snap/vlc/190	      <
/dev/loop1       87M   87M     0 100% /snap/core/4407	      <
/dev/loop0      189M  189M     0 100% /snap/vlc/158	      <
/dev/loop3       83M   83M     0 100% /snap/core/4327	      <
cgmfs           100K     0  100K   0% /run/cgmanager/fs	      <
tmpfs           788M   40K  788M   1% /run/user/1000	      <
% 
ed:	Edit then use both versions, each decorated with a header.
eb:	Edit then use both versions.
el or e1:	Edit then use the left version.
er or e2:	Edit then use the right version.
e:	Discard both versions then edit a new one.
l or 1:	Use the left version.
r or 2:	Use the right version.
s:	Silently include common lines.
v:	Verbosely include common lines.
q:	Quit.
%

Tenga en cuenta que necesita tener algunos de los editores como ed instalados en su sistema antes de usarlos, en este escenario.

Invoque otro programa para comparar archivos

11. El interruptor --diff-program le permite llamar a otra herramienta de línea de comandos, que no sea sdiff para comparar archivos, por ejemplo , puede llamar al programa diff como se muestra.

$ sdiff --diff-program=diff du.txt cal.txt

Para más información, consulte la página del manual de sdiff.

$ man sdiff

En este artículo, analizamos los ejemplos de la herramienta de línea de comandos sdiff para principiantes. Si tiene alguna pregunta, utilice el formulario de comentarios a continuación para comunicarse con nosotros.