我正在尝试比较两个命令输出(无文件)
vimdiff "$(tail /tmp/cachain.pem)" "$(tail /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem)"
我尝试过使用重定向,管道,vim - -c
但是我必须缺少一些东西。有人可以帮忙吗?
我正在尝试比较两个命令输出(无文件)
vimdiff "$(tail /tmp/cachain.pem)" "$(tail /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem)"
我尝试过使用重定向,管道,vim - -c
但是我必须缺少一些东西。有人可以帮忙吗?
Answers:
你是混淆$(…)
与<(…)
。您使用了前者,后者将输出作为参数传递给vimdiff
。例如,如果/path/to/foo
包含的最后一行包含bar bar bar
,则以下命令
echo $(tail -1 /path/to/foo)
相当于
echo bar bar bar
相反,您需要使用<(…)
。这称为进程替换,并将输出作为伪文件传递给vimdiff
命令。因此,使用以下内容。
vimdiff <(tail /tmp/cachain.pem) <(tail /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem)
这在bash和zsh中有效,但是显然在tcsh中没有办法进行进程替换。
tcsh
不创建一个文件unix.stackexchange.com/questions/5111/...