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.