我正在尝试使用 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