С чего начать Первые шаги трек · 15 ступеней
Linux Labs

Сравнение двух текстов

Разница двух текстов или конфигов построчно и пословно, патч в формате diff -u.

Сравнивать
Вид
Разница

Тексты совпадают.


          


Вставь два текста или выбери пример

Считается в браузере, на сервер ничего не уходит

Практика на машине

Лаба «Смени адрес во всех конфигах»

средняя ~25 мин ступень 2 трека «Bash: обработка текста и скрипты»

Открыть лабу

В терминале Linux

bash
cp nginx.conf nginx.conf.bak # копия перед правкой diff -u nginx.conf.bak nginx.conf # разница в формате патча diff -w a.conf b.conf # без учёта пробелов diff -rq /etc/nginx /backup/nginx # какие файлы в каталогах различаются git diff --no-index --word-diff a.txt b.txt # пословно, даже вне репозитория

УчтиПробелы в конце строк и переводы строк Windows (CRLF) тоже дают отличия, хотя строки выглядят одинаково.

Как читать diff -u

  • --- и +++ — старый и новый файл.
  • @@ -1,4 +1,5 @@ — кусок: в старом файле 4 строки с первой, в новом — 5.
  • - — строка удалена, + — добавлена, пробел — не менялась.

Частые вопросы

Почему одинаковые строки отмечены как изменённые?

Они отличаются невидимым: пробелом в конце, табом, концом строки \r\n. Если с «Без учёта пробелов» отметка пропала — дело в пробелах.

Как сравнить два файла?

Вставь их содержимое в «Было» и «Стало». На сервере — diff -u file1 file2.

Как применить патч?

Сохрани его в файл, поправь имена в строках --- и +++ и примени patch -p0 < file.patch. Сначала проверь с --dry-run.

Загрузка…