Цветовая разность

Я новичок в unix. Я хотел отформатировать файлы Unix условно, в настоящее время я работаю над командой diff и хотел узнать, можно ли форматировать текст вывода команды diff .

Пример:

Соответствующие значения должны отображаться зеленым цветом.
Непревзойденные значения должны отображаться красным цветом.

Предположим, у меня есть два файла file1 и file2 а моя команда – diff file1 file2 .

Теперь я хотел, чтобы предполагаемый вывод содержал 5 несоответствий, тогда эти несоответствия должны отображаться красным цветом. Как это сделать с помощью unix?

Короче: «Измените цвет на красный для вывода команды diff для значений, которые не соответствуют»,

  • Неожиданное поведение файлового дескриптора и / или потоков ввода-вывода после запуска sqlcmd с ключом -i (чтение sql из файла) в ksh создает бесконечный цикл
  • Получить команды, которые пользователь может запустить из / etc / sudoers?
  • tar и if-statement
  • Программирование оболочки, исключая временные файлы
  • Скрипт Ksh для нескольких каталогов ftp одновременно
  • комплексная замена чистого оболочка в переменной
  • awk + print awk вывод в одной строке
  • Кто-нибудь построил ksh93, AST или UWIN из ретрансляции AT & T на Github в Cygwin?
  • 5 Solutions collect form web for “Цветовая разность”

    Если у вас есть доступ к GNU diff вы можете использовать его опции --X-group-format для получения этого эффекта без каких-либо дополнительных инструментов:

     diff --old-group-format=$'\e[0;31m%<\e[0m' \ --new-group-format=$'\e[0;31m%>\e[0m' \ --unchanged-group-format=$'\e[0;32m%=\e[0m' \ file1 file2 

    Это использует коды отмены цвета ANSI, чтобы получить красный и зеленый цвета, при этом ANSI-C цитирует в оболочке доступ к экранам \e .

    --old-group-format и --new-group-format идентифицируют несогласованные строки и вставляют их между красными и цветовыми кодами сброса с использованием %< и %> , тогда как --unchanged-group-format вставляет соответствующие линии между зелеными и сбросить коды.

    Вы также можете использовать --old-line-format (и т. Д.) За счет избыточных цветовых экранов в каждой строке: --old-line-format=$'\e[0;31m%L\e[0m' .

    Добавлена ​​опция diff --color GNU diffutils 3.4 (2016-08-08)

    Это стандартная реализация diff для большинства дистрибутивов, которая скоро получит ее.

    На 3.5 это выглядит так:

    введите описание изображения здесь

    с:

     diff --color -u \ <(seq 6 | sed 's/$/ a/') \ <(seq 8 | grep -Ev '^(2|3)$' | sed 's/$/ a/') 

    Я также запросил разницу на уровне слов как от diff-highlight адресу: https://lists.gnu.org/archive/html/diffutils-devel/2017-01/msg00001.html

    По-видимому, добавлено в commit c0fa19fe92da71404f809aafb5f51cfd99b1bee2 (март 2015 г.).

    Попробуйте colordiff file1 file2

    Доступность colordiff с дистрибутивом Linux / BSD

    Те, кто использует Debian или Ubuntu (или любые их производные), возможно, просто используют «apt-get install colordiff» для загрузки и установки; colordiff также упакован для ряда других дистрибутивов Linux и UNIX и BSD и операционных систем.

    (Цитата из http://www.colordiff.org/ )

    Вы должны взглянуть на команду hl доступную в github: git clone http://github.com/mbornet-hl/hl и на: http://www.flashnux.com/notes/page_000022_US.html

    hl – это команда Linux, написанная на C, специально предназначенная для цветного текстового файла или вывода команды. Вы можете использовать до 42 цветов одновременно и использовать файл конфигурации для упрощения командной строки. Вы можете раскрасить вывод каждой команды, которая может быть передана по каналу на другую. И если вы знаете, что такое регулярные выражения, вам будет очень легко пользоваться. Вы можете использовать man страницу, чтобы понять, как ее использовать.
    hl очень прост в использовании и настройке. Вы даже можете использовать hl_generic- скрипт для раскрашивания выводимых команд без изменения их синтаксиса.
    Вы можете, например, раскрасить вывод команды diff просто набрав обычную команду:

     diff file1 file2 

    Если вам нужна помощь, просто отправьте мне электронное письмо.
    С уважением.

    Цветной, разностный уровень

    Вот что вы можете сделать с приведенным ниже сценарием и diff-highlight :

    Цветной скриншот diff

     #!/bin/sh -eu # Use diff-highlight to show word-level differences diff -U3 --minimal "$@" | sed 's/^-/\x1b[1;31m-/;s/^+/\x1b[1;32m+/;s/^@/\x1b[1;34m@/;s/$/\x1b[0m/' | diff-highlight 

    (Кредит на ответ @ retracile для подсветки sed )

    Interesting Posts

    Korn Shell: конец, pgup, pgdown и ключ удаления не работают

    Как я могу избежать манипулирования аргументами с пробелами в расширении Ex {$ {run {…}}?

    Проблема с установкой Debian 8 VirtualBox / DKMS

    выход ограничения на выход И избежать сигнала 13

    Ошибка «Нет протокола» при запуске с удаленной машины через ssh

    проблема редактирования utf8 текстовый файл с vim

    Как заменить файл в zip-файле

    Имея хост с системой ZFS, как сделать его доступным для других хостов в локальной сети?

    Как проверить, что изменяется содержимое файла, а не atime, mtime, ctime в Linux?

    bash добавление 1 к переменной в цикле while

    USB-накопители Automount без требования GUI (замена halevt)

    Cron автоматизированный сценарий bash для запуска run 1 скрипт bash, затем другой, плюс проверка целостности

    В Makefile, как я могу начать обработку файла до его завершения?

    Отключение электронной почты для учетной записи

    Wget не загружает изображения в рекурсивную загрузку

    Linux и Unix - лучшая ОС в мире.