Как получить разницу в уровнях символов с помощью команды «diff» в Linux с использованием сценария оболочки?

В любом дистрибутиве на основе yum (например, Red Hat EL , CentOS и т. Д.), Вы можете:

  1. изучить историю изменений в системе с помощью sudo yum history list

     Загруженные плагины: fastestmirror { {1}} ID | Авторизованный пользователь | Дата и время | Действие (я) | Изменен 
     -------------------------------------------- ---------------------------------- 
    10 | Администратор  | 2016-03-08 09:08 | Установить | 11 
    9 | Администратор  | 2016-03-03 16:48 | Установить | 1 
    8 | Администратор  | 2016-03-03 16:09 | Установить | 5 
    7 | Администратор  | 2016-02-26 18:13 | Установить | 1 
    6 | Администратор  | 2016-02-26 15:12 | Установить | 27 
    5 | Администратор  | 2016-02-26 15:07 | Установить | 1 
    4 | Администратор  | 2016-02-26 15:05 | Установить | 3  | 2016-02-26 15:03 | Установить | 1> 
    2 | Администратор  | 2016-02-26 15:01 | I, U | 49 
    1 | Система  | 2016-02-26 14:38 | Установить | 296 
    список истории 
     
  2. проверьте детали, используя sudo yum history info 10

  3. откат к предыдущей точке в истории, используя sudo yum history rollback 9

Предупреждение

Есть некоторые очевидные предостережения:

  1. Если старый пакет больше не доступен, вы вспоминаете (цитируя @vonbrand),
  2. Если вы устанавливаете что-нибудь вне yum, вы можете сломать история.

В моем примере в строке с ID 4 (в последнем столбце) означает, что я не могу выполнить откат после этой точки.

sudo yum history rollback 2
Loaded plugins: fastestmirror
Transaction history is incomplete, before 4.
 You can use 'history rollback force', to try anyway.
Error: Failed history rollback, incomplete

4
31.05.2016, 12:04
2 ответа

Краткие ответы от здесь:

git diff --word-diff=color --word-diff-regex=. file1 file2

И здесь:

diff -u file1 file2 |perl /usr/share/doc/git/contrib/diff-highlight/diff-highlight

5
29.01.2020, 18:06

Я также написал свой собственный скрипт для решения этой проблемы с использованием алгоритма самой длинной общей подпоследовательности.

Выполняется как таковой

JLDiff.py a.txt b.txt out.html

Результат в html с красной и зеленой окраской. Файлы большего размера экспоненциально занимают больше времени для обработки, но это делает истинное сравнение символов -на -без проверки сначала построчно.

Этот ответ является перекрестным -, отправленным из здесь .

Я обнаружил, что JLDiff работает намного быстрее под pypy.

0
25.05.2021, 19:48

Теги

Похожие вопросы