Я пытаюсь получить унифицированный diff между многими парами каталогов, поэтому я могу гарантировать, что сравнение между парами согласовано, и я хочу знать, есть ли способ получить diff
для форматирования вывода с относительными, а не абсолютными путями.Есть ли способ заставить инструмент diff сообщать только относительный путь файлов в рекурсивном diff?
Прямо сейчас, если я использую diff -r -u PATH1 PATH2
тогда я получаю этот вид продукции:
diff -r -u PATH1/some/subfile.txt PATH2/some/subfile.txt
--- PATH1/some/subfile.txt Tue Feb 07 09:16:31 2017
+++ PATH2/some/subfile.txt Tue Feb 07 09:16:32 2017
@@ -70,7 +70,7 @@
*
* some stuff
*
- * I am Tweedledee and you are not
+ * I am Tweedledum and you are not
*/
void twiddle(void)
{
@@ -88,7 +88,7 @@
* check whether we should destroy everything
* and then destroy everything in either case
*/
-inline static void Tweedledee(void)
+inline static void Tweedledum(void)
{
if (should_destroy_everything())
{
Я предпочел бы получить только относительные пути ... есть ли способ получить diff
сделать это? пример:
diff -r -u PATH1/some/subfile.txt PATH2/some/subfile.txt
--- some/subfile.txt
+++ some/subfile.txt
@@ -70,7 +70,7 @@
*
* some stuff
*
- * I am Tweedledee and you are not
+ * I am Tweedledum and you are not
*/
void twiddle(void)
{
@@ -88,7 +88,7 @@
* check whether we should destroy everything
* and then destroy everything in either case
*/
-inline static void Tweedledee(void)
+inline static void Tweedledum(void)
{
if (should_destroy_everything())
{
Это упростит сравнение отчетов о различиях, которые, как ожидается, будут одинаковыми. (В моем случае PATH1
и PATH2
отличаются в каждом конкретном случае, в то время как относительные пути к файлам, а также точные различия содержания одинаковы)
В противном случае я должен фильтровать эту информацию (либо вручную, либо с помощью сценария)
Вы могли бы даже получить новые идеи: SED '1s/^ \\ (--- \\) PATH1 \ // \ 1 /' и sed '2s/^ \\ (+++ \\) PATH2 \/\ 1 /' Эти два утверждения просто говорят только об удалении PATH1 и PATH в начале строки, когда им предшествуют «---» и «+++» соответственно. –
спасибо ... бах, я просто разбирал его в скрипте Python, чтобы делать то, что хотел. –