${var/a/b/\c} とはどういう意味ですか?

${var/a/b/\c} とはどういう意味ですか?

私はこの言葉(建築?)に少し混乱しています。適切な情報が見つかりません(何と呼ぶべきかさえわかりません)。ここで何が起こっているのでしょうか?

bash-4.3$ var="a/b"
bash-4.3$ f=${var/b/c/\d}                                                                                                                                                                                                             
bash-4.3$ echo $f                                                                                                                                                                                                                     
a/c/d

またはこれ:

bash-4.3$ var="b/a"                                                                                                                                                                                                                   
bash-4.3$ f=${var/b/c/\d}                                                                                                                                                                                                             
bash-4.3$ echo $f                                                                                                                                                                                                                     
c/d/a 

ありがとう

ベストアンサー1

Bashパラメータの拡張について学びます。あなたの例では、検索と置換の構文を使用して、特定のパターンの最初の項目を置き換えます。

${parameter/pattern/string}

例:

> X="aaaa"
> echo ${X/a/b}   # substitute first occurence of a with b
> baaa

すべての項目を置き換える構文は次のとおりです。

${parameter//pattern/string}

例:

> X="aaaa"
> echo ${X//a/b}   # substitute all occurences of a with b
> bbbb

したがって、最初の例では、パラメータは "a / b"で、bashに "a / b"(varの値)で最初に表示される "b"を文字列 "c / d"(これは結果は "a / c / d"です。 )です。 「\d」は不要なエスケープなので、「d」だけを使うのと違いはありません。

おすすめ記事