私が見つけたどのLinux比較ツールよりも優れているWindows比較ツールがあります(そして、かなりの 視覚的比較ツールの広範な分析 を実行しました)。 Linuxで(Wineを介して)そのツールを使用し、Linuxのファイルパスを渡せるようにしたいと思っています。これは、一部には、Double Commanderのような2ペインのファイルマネージャがdiffツールを呼び出すときに完全なファイルパスを渡すためです。
したがって、私は この質問 の逆を求めています。スペースなどのエスケープ文字を含むLinuxスタイルのファイルパスを、Windowsツールで受け入れられるWindowsスタイルのファイルパスに変換するにはどうすればよいですか。ワイン経由で走った?
単純な例として、
入力:
/path/to/file1.ext /path/to/file2.ext
出力
「\ path\to\file1.ext」「\ path\to\file2.ext」
もちろん、現実の世界では、ファイルにスペースなどが含まれている可能性があるため、これまでのbash
置換よりも信頼性の高いソリューションを探しています。
#!/bin/bash
p1=$1
p2=$2
wine /utils/wincmp.exe ${p1//\//\\} ${p2//\//\\}
あなたのスクリプトは実際には非常に近いです。必要なのは、変換を行うためのwinepath
ツールで、WINEの一部として提供されています。
#!/ bin/sh exec wine /utils/wincmp.exe "` winepath --windows\"$ 1 \" `" "` winepath --windows\"$ 2 \" `"
または Laurent Bercot's execline
を使用:
#!/ command/execlineb -S2 backtick -i left {winepath --windows $ 1} backtick -i right {winepath --windows $ 2} multisubstitute { importas left left importas right right } wine /utils/wincmp.exe $ {left} $ {right}