从差异输出启动 vimdiff



我正在尝试使用 diff 比较两个文件夹,并为与 shell 脚本的每个差异启动 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}')

它根本不输出。

这对任何开发人员都非常有用,所以我希望找到一些答案

只是出于好奇,尝试了一下。

像这样怎么样:

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}')

你的问题不妨这样说:


如何使这项工作?

echo vimdiff oldfolder/a.c newfolder/a.c|bash 
echo vimdiff oldfolder/a.c newfolder/a.c|bash -c

最新更新