
2つのコマンド出力を比較したい(ファイルなし)。
vimdiff "$(tail /tmp/cachain.pem)" "$(tail /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem)"
リダイレクト、パイプを使ってみましたが、vim - -c
何か抜けたようです。誰でも助けることができますか?
答え1
あなたは$(…)
について混乱しています<(…)
。出力を次のように渡す電子を使用しました。議論到着する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
。
答え2
存在するfish
シェル、これpsub
注文するプロセス置換を実行すると、次の例になります。
vimdiff (tail /tmp/cachain.pem | psub) (tail /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem | psub)
ところで、そのファイルの特定のGitバージョンでファイルを編集するのは、プロセス置換とvimdiff
.definition(fish
構文ではありますがPOSIXシェル構文に簡単に適応できる)と思います。
function vimgitdiff
vimdiff $argv[1] (git show $argv[2]:$argv[1] | psub)
end
それから電話してください
vimgitdiff path/to/file branch-name
左の作業ツリーで現在の状態を開き、Vim
右の作業ツリーで現在の状態を開きます。path/to/file
branch-name