Pesquisa de site

Exemplos de comandos Linux sdiff para iniciantes em Linux


Em um de nossos artigos anteriores, explicamos cerca de 9 melhores ferramentas de comparação e diferença de arquivos (Diff) para sistemas Linux. Listamos uma mistura de ferramentas de linha de comando e GUI para comparar e encontrar diferenças entre arquivos, cada uma com certos recursos notáveis. Outro utilitário diff útil para Linux é chamado sdiff.

Leia também: Como encontrar a diferença entre dois diretórios usando as ferramentas Diff e Meld

sdiff é um utilitário de linha de comando simples para mostrar as diferenças entre dois arquivos e mesclar interativamente. É fácil de usar e vem com opções de uso simples, conforme explicado abaixo.

A sintaxe para usar sdiff é a seguinte.

sdiff option... file1 file2

Mostrar diferença entre dois arquivos no Linux

1. A maneira mais fácil de executar o sdiff é fornecer os dois nomes de arquivo que você está tentando comparar. Ele mostrará a diferença mesclada lado a lado, conforme mostrado na imagem a seguir.


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

Trate todos os arquivos como arquivos de texto

2. Para tratar todos os arquivos como texto e compará-los linha por linha, sejam eles arquivos de texto ou não, use o sinalizador -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 guias e espaços em branco

3. Se você tiver arquivos com muitos espaços em branco, você pode dizer ao sdiff para ignorar todos os espaços em branco durante a comparação usando a opção -W.

sdiff -W du.txt cal.txt

4. Você também pode dizer ao sdiff para ignorar qualquer espaço em branco no final da linha usando a opção -z.

sdiff -z du.txt cal.txt

5. Além disso, você pode instruir o sdiff a ignorar alterações devido à expansão de guias com o sinalizador -E.

sdiff -E du.txt cal.txt

Ignore maiúsculas e minúsculas ao comparar diferenças

6. Para ignorar maiúsculas e minúsculas (onde sdiff trata maiúsculas e minúsculas como iguais), use a opção -i conforme mostrado.

sdiff -i du.txt cal.txt

Ignore as linhas em branco ao comparar as diferenças

7. A opção -B ajuda a ignorar linhas em branco nos arquivos.

sdiff -B du.txt cal.txt

Definir o número de colunas para saída

8. sdiff permite definir o número de colunas a serem impressas (o padrão é 130), usando o -w mude da seguinte maneira.

sdiff -w 150 du.txt cal.txt

Expanda guias para espaços

9. Para expandir tabulações para espaços na saída, use a opção -t.

sdiff -t du.txt cal.txt

Execute o sdiff interativamente

10. O sinalizador -o permite que ele seja executado de forma mais interativa e envie a saída para um arquivo. Neste comando, a saída será enviada para o arquivo sdiff.txt, pressione Enter após ver o sinal %, para obter o menu interativo .

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.
%

Observe que você precisa ter alguns editores, como ed, instalados em seu sistema antes de usá-los neste cenário.

Invoque outro programa para comparar arquivos

11. A opção --diff-program permite que você chame outra ferramenta de linha de comando, diferente do próprio sdiff para comparar arquivos, por exemplo , você pode chamar o programa diff conforme mostrado.

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

Para obter mais informações, consulte a página de manual do sdiff.

man sdiff

Neste artigo, vimos exemplos de ferramentas de linha de comando sdiff para iniciantes. Se você tiver alguma dúvida, use o formulário de comentários abaixo para entrar em contato conosco.