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