запуск vimdiff с выхода diff - PullRequest
       49

запуск vimdiff с выхода diff

0 голосов
/ 19 января 2019

Я пытаюсь различать две папки, используя diff и запускать vimdiff для каждого отличия от сценария оболочки

Вот так я извлек имена файлов и сделал полную команду, используя awk, который мне нравится выполнять

 $ diff -Bbqr oldfolder newfolder | grep differ | awk '{print "vimdiff " $2,$4}'
 vimdiff oldfolder/a.c newfolder/a.c 
 vimdiff oldfolder/b.c newfolder/b.c 

Теперь я попытался

diff -Bbqr oldfolder newfolder | grep differ | awk '{print "vimdiff " $2,$4}' | bash 

, это не сработало, выдает предупреждение, что Vim: Warning: Input is not from a terminal

также пытался bash -c, как показано ниже

diff -Bbqr oldfolder newfolder | grep differ | awk '{print "vimdiff " $2,$4}' | bash -c 

но это выдает ошибку bash: -c: option requires an argument

Я также пытался

$(diff -Bbqr oldfolder newfolder | grep differ | awk '{print "vimdiff " $2,$4}')

, она вообще не выводится.

Это очень полезно для любого разработчика, поэтому я надеюсь найти ответ

1 Ответ

0 голосов
/ 19 января 2019

Просто из любопытства попробовал.

Как примерно так:

vimdiff $(diff -Bbqr oldfolder newfolder | grep differ | awk '{print $2,$4}')

Однако это сработало для меня:

$(echo vimdiff file1 file2)

Вы также можете попробовать это:

</dev/tty $(diff -Bbqr oldfolder newfolder | grep differ | awk '{print "vimdiff " $2,$4}')

Ах, да, и это:

bash <(diff -Bbqr oldfolder newfolder | grep differ | awk '{print "vimdiff " $2,$4}')

Ваш вопрос можно было бы сформулировать так:


Как сделать эту работу?

1019
...