Вопрос: Как группировать строки «Только в» в diff в начале вывода


Я сделал:

diff -r directory1/ directory2/

Некоторые файлы разные, и некоторые файлы были только в одном дереве или другом, создавая несколько Only in ... линий.

Как сгруппировать эти строки в начале файла? Я уверен, 99,9% уверены, что ни один каталог не содержит строки, которая начинается с Only in, Я рассматривал что-то вроде:

diff -r directory1/ directory2/ | grep -v `^Only in`

Но это удаляет их, а не группирует их. А также sort не делает то, что я хочу, потому что я хочу сохранить фактические сравнения в их порядке.


0
2018-03-18 13:31


Источник




Ответы:


Одним из подходов может быть перенаправление diff вывод в файл, а затем использовать grep для разделения двух частей:

diff -r directory1/ directory2/ > temp
{ grep '^Only in' temp; grep -v '^Only in' temp; } > diff.output

1
2018-03-18 13:44



Благодаря! Можно ли сделать это в одной строке? Не важно, просто любопытно. - durron597
@ durron597 Не так, как я могу думать! - devnull