голосование
PHP
Javascript
BASH
HTML
Firebird
Майнинг
Программы
Хостинг
Железо
Ресурсы
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.

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

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






поиск
сайты друзей
банеры
домен RU всего за 99 рублей
http://www.2domains.ru домен RU домен RU всего за 99 рублей
http://trainingweb.ru/redirect/well_web_vps_kvm Аренда VPS KVM в Европе Мы предлагаем в аренду VPS серверы с выделенным IP-адресом, которые полностью эмулируют физический сервер.
http://ping-admin.ru/index_5659.html мониторинг сайтов сервис мониторинга работы сайта, мониторим HTTP, HTTPS, FTP, MYSQL, PostgreSQL, POP3, SMTP, IMAP