次のコマンドを実行します。
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'