web-dev-qa-db-ja.com

ファイルの代わりに出力を比較するvimdiff

2つのコマンド出力を比較しようとしています(ファイルなし)

vimdiff "$(tail /tmp/cachain.pem)" "$(tail /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem)"

リダイレクト、パイプ、vim - -cを試してみましたが、何か不足しているはずです。誰か助けてくれますか?

17
Florian Bidabe

$(…)<(…)を混同しています。前者を使用して、出力をargumentsとして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でプロセス置換を行う no way があります。

25
Sparhawk