/tmp/testing
置き換えたい文字列があります。\/tmp\/testing
sed
次のようにうまく動作します。
echo testdir=/tmp/testing | sed 's/\//\\\//g'
testdir=\/tmp\/testing
ただし、後で使用したい変数にそれを入れようとすると、次のエラーが発生します。
myvar=`echo testdir=/tmp/testing | sed 's/\//\\\//g'`
sed: -e expression #1, char 9: unknown option to `s'
どんなアイデアがありますか?
ベストアンサー1
バックティックは`...`
間接レベルを追加し、別の\
エスケープセットが必要です。これを使用すると、うまく動作し、$( ... )
期待どおりに動作します。
myvar=$(echo testdir=/tmp/testing | sed 's/\//\\\//g')
echo "$myvar"
testdir=\/tmp\/testing
バックティックの使用にこだわると、次のように動作します。
myvar=`echo testdir=/tmp/testing | sed 's/\//\\\\\//g'`
echo "$myvar"
testdir=\/tmp\/testing