Простой, но эффективный способ - передать вывод на grep
. С grep -Ev
вы можете игнорировать строки, используя регулярные выражения.
diff --recursive a.git b.git | grep -Ev "^< .xaml.g.cs|^> .xaml.g.cs" | grep -Ev "Binary files$" | grep -v ".git/objects"
При этом игнорируются все строки с соответствующим текстом. Что касается регулярных выражений: ^
означает, что строка начинается с, $
означает, что строка заканчивается. Но по крайней мере для ^
вы должны настроить его на выход diff
(где строки обычно начинаются с <
или >
).
Также обратите внимание, что diff
предоставляет флаг --ignore-matching-lines=RE
, но он может работать не так, как вы ожидаете, как , упомянутый в этом вопросе / ответе . И поскольку он не работает так, как я ожидаю, я скорее использую grep
для фильтрации.