ハイフンを含む文字列のすべてのインスタンスを置き換える

ハイフンを含む文字列のすべてのインスタンスを置き換える

次のコマンドを実行します。

echo "hello-world" | tr "hello-world" "Hello World"

返品Heddd-ddddd。私はそれを返したいですHello World。私はこれがtrパラメータがマンページSET1の範囲として解釈されるからだと思います。tr

CHAR1-CHAR2
    all characters from CHAR1 to CHAR2 in ascending order

私も次のことを試しました。

echo ${"hello-world//hello-world/Hello World"}

返品:

bash: ${"hello-world//hello-world/Hello World"}: bad substitution

これを行うための好ましい方法は何ですか(文字列のすべてのインスタンスを別の文字列に変換する)?または他のプログラムを使用してくださいtr

ベストアンサー1

私たちが逃げなければならないだけです。-

echo "hello-world" | tr "hello\-world" "Hello World"

h幸いなことに、リンクされた結果を提供するためにコンテキストに末尾のORがありませんw。したがって、各文字列の最初の文字を大文字に置き換えることをお勧めします。

使用sed

echo "hello-world" | sed 's/-/ /g;s/\<./\U&/g'

おすすめ記事