4

У меня есть 2 файла, которые я хочу отличать. Файл B создается с добавлением новой строки в файл A. Я хочу выделить добавленные данные, используя diff .

Я хотел бы избежать распечатки символов «>» и «10a11,14» вывода ниже.

Читая справочные страницы diff я вижу, что вы можете указать форматирование результата (LFMT), но я изо всех сил пытаюсь создать что-то полезное.

Не могли бы вы помочь удалить тех персонажей, которые мне не нужны?

С уважением

AFG

   diff --left-column A.txt  B.txt

   10a11,14
   > TXT :   some text
   >         some text
   >         some text
   >         some text

2 ответа2

5

Есть два простых способа сделать это: вы можете проанализировать вывод diff или использовать comm .

  • diff fileA fileB | grep '>' | sed 's/> *//'

  • comm -13 fileA fileB

4

Хотя это больше, чем просто использование comm , вводит демонстрацию --GTYPE-group-format :

diff --unchanged-group-format="" --new-group-format="%>" A.txt B.txt

Эта команда будет печатать только эти строки в B.txt а не в A.txt . Первый вариант подавляет общие линии. Нет необходимости использовать --changed-group-format (нет строк, которые имеют разные значения в каждом файле) или --old-group-format (все в A.txt также есть в B.txt).

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .