0

スクリプトに文字列変数x=tmp/variable/custom-sqr-sample/test/example があります。やりたいのは、すべての「-」を/に置き換えることです。その後、次の文字列を取得する必要があります。

x=tmp/variable/custom/sqr/sample/test/example 

誰か助けてもらえますか?

次の構文を試しましたが、機能しませんでした

exa=tmp/variable/custom-sqr-sample/test/example
exa=$(echo $exa|sed 's/-///g')
4

3 に答える 3

2

sedは基本的にすべての区切り文字をサポートします。これは、を一致させようとするときに便利/です。最も一般的なのは|、で#あり@、作業する必要のある文字列に含まれていない区切り文字を選択します。

$ echo $x
tmp/variable/custom-sqr-sample/test/example

$ sed 's#-#/#g' <<< $x
tmp/variable/custom/sqr/sample/test/example

上で試した表彰では、必要なのはスラッシュをエスケープすることだけです。

echo $exa | sed 's/-/\//g'

ただし、別の区切り文字を選択する方が適切です。

于 2013-03-07T18:22:25.803 に答える
1

この場合trよりもツールの方が適している場合があります。sed

x=tmp/variable/custom-sqr-sample/test/example
echo "$x" | tr -- - /

(これ--は厳密には必要ではありませんが、tr(および人間が)オプションと間違えない-ようにします。)

于 2013-03-07T18:52:38.603 に答える
0

ではbash、パラメータ置換を使用できます。

$ exa=tmp/variable/custom-sqr-sample/test/example
$ exa=${exa//-/\/}
$ echo $exa
tmp/variable/custom/sqr/sample/test/example
于 2013-03-07T19:42:48.767 に答える