голосование
PHP
jQuery
Firebird
BASH
HTML
Ресурсы
GIT
SEO
Oracle
Python
Программы
Проголосуйте за категорию!
счётчик
Яндекс.Метрика

Как сравнить два файла cmp diff sdiff BASH

Существует утилиты cmp, diff и sdiff для сравнения двух файлов в BASH. Допустим, вам нужно сравнить 2 файла. Пусть это будет 2 sql запроса. Как понять в каких строках поменялся код. Сравнивать два файла глазами - это утомительное занятие. Вы можете пропустить ошибку. Команды cmp, diff и sdiff покажут вам различия прямо в консоли. Посмотрите на примеры.


file1
/*описание*/
SELECT * FROM table1
WHERE id=1

file2
/*описание*/
SELECT * FROM table1
ORDER BY NAME

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


# сравнение 2 файлов
cmp file1 file2
#вывод: file1 file2 различаются: байт 40, строка 3

В этом примере показаны отличающиеся части двух файлов. Различия можно увидеть прямо на экране. Сами отличающиеся строки разделяет вертикальная черта |. diff — утилита сравнения файлов, выводящая разницу между двумя файлами. Эта программа выводит построчно изменения, сделанные в файле (для текстовых файлов).


# сравнивание файлов
diff file1 file2
#вывод:
3c3
< WHERE id=1
---
> ORDER BY NAME

В этом примере вывод различающихся строк выполнен в 2 столбца. Это удобно! Вертикальная черта показывает вам строку в которой есть отличие.


#выводит два файла в 2 столбцах
diff -y file1 file2
#вывод: 
#описание                                                       #описание
SELECT * FROM table1                                            SELECT * FROM table1
WHERE id=1                                                    | ORDER BY NAME

Этом пример очень похож на предыдущий, но с той лишь разницей, что выводятся только отличия.


# сравнивает 2 файла и выводит в 2 столбца
sdiff -s file1 file2
#вывод: 
WHERE id=1                                                    | ORDER BY NAME

Сравнивание файлов в GIT

Если вы сравниваете один и тот же файл до изменений и после, то воспользуйтесь системой контроля версий GIT. В системе контроля версий тоже есть возможность отслеживать изменения. Не важно попали изменения в индекс или нет! Историю изменений одного файла можно отследить.


# проберитесь в каталог с приложением
# инициализация репозиория
git init

# первая запись
echo 'первая строка для первого файла'  > file1.txt

# добавление всех новых файлов в индекс
git add -A

# первый коммит
git commit -ma 'первый коммит'

# первая запись
echo 'вторая строка для первого файла'  > file1.txt

# показать различия
git diff

В git проще осматривать изменения. Для сравнения файлов не под гитом используйте команды cmp, diff и sdiff. Гит нужно устанавливать и настраивать, а команды сравнения файлов всегда под рукой. Если вам интересен GIT, то советую почитать статьи из моей категории GIT.

просмотры: 255, уровень: лёгкий уровень, рейтинг: 0, дата: 2017-05-30 10:42:59
проголосовать:

Комментарии:






поиск
сайты друзей
банеры
домен RU всего за 99 рублей
http://www.2domains.ru домен RU домен RU всего за 99 рублей
http://ping-admin.ru/index_5659.html мониторинг сайтов сервис мониторинга работы сайта, мониторим HTTP, HTTPS, FTP, MYSQL, PostgreSQL, POP3, SMTP, IMAP
https://my.colobridge.net/aff.php?aff=047 серверы vps/vds облачный vps/vds сервер colobridge от 9,9 евро в месяц