Поиск по сайту:

Примеры команд Linux sdiff для новичков в Linux


В одной из наших предыдущих статей мы рассказали о 9 лучших инструментах сравнения и различия файлов (Diff) для систем Linux. Мы перечислили набор инструментов командной строки и графического интерфейса для сравнения и поиска различий между файлами, каждый из которых обладает определенными замечательными функциями. Другая полезная утилита сравнения для Linux называется sdiff.

Читайте также: как найти разницу между двумя каталогами с помощью инструментов сравнения и объединения

sdiff – это простая утилита командной строки, позволяющая показать различия между двумя файлами и выполнить их интерактивное объединение. Он прост в использовании и имеет простые варианты использования, как описано ниже.

Синтаксис использования sdiff следующий.

sdiff option... file1 file2

Показать разницу между двумя файлами в Linux

1. Самый простой способ запустить sdiff — указать два имени файлов, которые вы пытаетесь сравнить. Объединенная разница будет показана рядом, как показано на следующем снимке экрана.


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

Рассматривать все файлы как текстовые файлы

2. Чтобы рассматривать все файлы как текстовые и сравнивать их построчно, независимо от того, являются ли они текстовыми файлами или нет, используйте флаг -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	      <

Игнорировать табуляции и пробелы

3. Если у вас есть файлы со слишком большим количеством пробелов, вы можете указать sdiff игнорировать все пробелы при сравнении, используя переключатель -W.

sdiff -W du.txt cal.txt

4. Вы также можете указать sdiff игнорировать любые пробелы в конце строки, используя параметр -z.

sdiff -z du.txt cal.txt

5. Кроме того, вы можете указать sdiff игнорировать изменения, связанные с раскрытием табуляции, с помощью флага -E.

sdiff -E du.txt cal.txt

Игнорировать регистр при сравнении различий

6. Чтобы игнорировать регистр (где sdiff воспринимает прописные и строчные буквы одинаково), используйте параметр -i, как показано.

sdiff -i du.txt cal.txt

Игнорируйте пустые строки при сравнении различий

7. Параметр -B помогает игнорировать пустые строки в файлах.

sdiff -B du.txt cal.txt

Определите количество столбцов для вывода

8. sdiff позволяет вам установить количество печатаемых столбцов (по умолчанию 130) с помощью -w переключитесь следующим образом.

sdiff -w 150 du.txt cal.txt

Развернуть вкладки до пробелов

9. Чтобы расширить табуляцию до пробелов в выводе, используйте параметр -t.

sdiff -t du.txt cal.txt

Запуск sdiff в интерактивном режиме

10. Флаг -o позволяет ему работать более интерактивно и отправлять выходные данные в файл. В этой команде выходные данные будут отправлены в файл sdiff.txt. Нажмите Enter после появления знака %, чтобы открыть интерактивное меню. .

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

Обратите внимание, что в этом сценарии вам необходимо установить в вашей системе некоторые редакторы, такие как ed, прежде чем использовать их.

Вызов другой программы для сравнения файлов

11. Переключатель --diff-program позволяет вызывать другой инструмент командной строки, отличный от самого sdiff, например, для сравнения файлов. , вы можете вызвать программу diff, как показано.

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

Для получения дополнительной информации обратитесь к странице руководства sdiff.

man sdiff

В этой статье мы рассмотрели примеры инструментов командной строки sdiff для начинающих. Если у вас есть какие-либо вопросы, используйте форму комментариев ниже, чтобы связаться с нами.