sed
バックスラッシュ付きのパスをスラッシュ付きの同じパスに変換するために使用したいもの:
\\path\to\file\
たとえば、パイプラインを通過したいと思います。/path/to/file
まったく次のコマンドは機能しますが、理由がわかりません。
最初の試み:
> echo '\\path\to\file\' | sed 's/\\/\//g'
/path o
ile/
2回目の試み:
echo \\path\to\file\ | sed 's/\\/\//g'
/pathtofile
3回目の試み:
echo "\\path\to\file\" | sed 's/\\/\//g'
dbquote>
パイプしようとすると、次の動作が発生します。 | tr '\' '/'
私は正しい答えを探していて、可能であれば上記の試みのどれもうまくいかない理由の説明を探しています。これが重要かどうかはわかりませんが、すべてがあります。zsh 4.2.6 (x86_64-redhat-linux-gnu)
ありがとうございます!
ベストアンサー1
file='\\path\to\file\'
printf '%s\n' "$file" | tr -s '\\' /
ジシュ語:
setopt extendedglob
print -r -- ${file//\\##/\/}