Я хочу сравнить два разных текста. Пожалуйста, проверьте нижеприведенные детали и то, что мне нужно
Содержание первого текста:
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 } '
(только в конце строки после |
)