
一部のコマンドはstdoutとしてのみ出力されます。
一部のツールはファイルにのみ機能します。
互いに貼り付けるコマンドはありますか?
設計された簡単な例:
diff $(echo 1 | stdout-to-temp-file) $(echo 2 | stdout-to-temp-file)
私の実際のユースケース:現在の解決策:
git show HEAD:$1 > /tmp/left && meld /tmp/left $1
私の実際のユースケースは次のとおりです。
meld $(git show HEAD:$1 | stdout-to-temp-file) $1
他のいくつかの状況でも使用されます(例:gitまたはmeld専用の変更を探していません)。
答え1
<
出力をにリダイレクトできますstdin
。
どのように動作するのかわかりませんが、meld
diffの例に関連して動作する方法は次のとおりです。
一時ファイルの使用
$ cmd1 > file1.tmp
$ cmd2 > file2.tmp
$ diff file1.tmp file2.tmp
一時ファイルなし
$ diff <(cmd1) <(cmd2)
使用しているシェルによって構文が異なる場合があります(私はksh88を使用しています)。
答え2
mktemp
一時ファイル名が生成されます。ファイル名を変数に保存し、両方のスロットで対応するファイル名を使用します。
特定の問題をよりよく解決するには、次を確認してください。git difftool
。 Meldを使用するように設定しましたが素晴らしいです。
答え3
私はmeldを使用したことがありませんが、通常はほとんどのcliユーティリティの-パラメータを使用してこれを行うことができます。例えば
cat /path/to/left/file | diff /input/from/right/file -
特に meld コマンドの場合は、次のことを試すことができます。
git show HEAD:$1 | meld - $1