Сравните два разных текста - нашли одинаковые и разные

Сравните два разных текста - нашли одинаковые и разные

Я хочу сравнить два разных текста. Пожалуйста, проверьте нижеприведенные детали и то, что мне нужно

Содержание первого текста:

111 xx1
222
333
555

Содержание второго текста:

333
111 xxx
222
888

Мои вопросы

Я ищу одну команду, которая могла бы вывести следующие результаты:

«Обновление:111 xxx»

"Удалить:555"

"Добавить:888"

Самое главное, чтобы в заголовке отображались слова «обновить», «Удалить», «Добавить».

решение1

ты ищешь

diff <(sort file1) <(sort file2)

что даст

1c1
< 111XZ
---
> 111 xxx
3a4
> 888

с "<" для данных в файле 1 и ">" для данных в файле 2.

Обратите внимание на вывод: это псевдообозначение ed.

  • cозначает изменить строку
  • aозначает добавить
  • dозначает удалить (в примере выше нет)

ты можешь сделать

diff <(sort file1) <(sort file2) |
awk '$1 == "<" {$1=" in file1 } $1== ">" { $1="in file2" } { print } '

(только в конце строки после |)

решение2

Вы могли бы использовать diffдля этого. Вам просто нужно привыкнуть к его выходному формату. Есть удобное руководствоздесь. Для чего-то с графическим интерфейсом естьсливаться.

Связанный контент