LINUX.ORG.RU
решено ФорумAdmin

diff два файла: только удалённые строки


0

1

У меня есть два файла. Мне нужно получить только строки, которые есть во втором файле но нету в первом. Скажем,
===файл1
dir1/fi
dir1/le
===

===файл2
dir1/fi
dir1/le
dir1/mon
===

Мне надо чтобы он сказал /dir1/mon - так как он есть во втором,но нету в первом. То есть, только удалённые строки.

Может, как-то настроить на это дело программу diff ?

А вообще, два файла - это списки, полученные с помощью ls -R -1 dir1/
Так что их можно сортировать по всякому,если надо.


===файл1
dir1/fi
dir1/le
dir1/tree
===

===файл2
dir1/fi
dir1/le
dir1/mon
===

Что должно быть при таких входных данных на выходе?

anonymous
()

diff --suppress-common-lines a b | sed -n -e 's/^< //p'

+ делай sort | uniq для входных файлов

anonymous
()

diff file1 file2 |grep «<»

dikiy ★★☆☆☆
()

как вариант - comm -13, но это для сортированных списков.

silw ★★★★★
()
Ответ на: комментарий от anonymous

===файл1 dir1/fi dir1/le dir1/tree ===

===файл2 dir1/fi dir1/le dir1/mon ===

Что должно быть при таких входных данных на выходе?

при таких - /dir1/mon

az
() автор топика

отфильтруй грепом строки диффа, начинающиеся с +

annulen ★★★★★
()

grep -v -f file1 file2

TGZ ★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.