行末に追加するには、sedを使用してください。

行末に追加するには、sedを使用してください。

私の問題を解決したい他の答えを見ましたが、解決できません。

#!/bin/bash
s=org.gnome.Terminal.Legacy.Keybindings
g=$(echo $s | sed "s|\.|/|g") 
echo $g

上記のスクリプトが返されました。

org/gnome/Terminal/Legacy/Keybindings

/しかし、最後に追加する必要があります。

org/gnome/Terminal/Legacy/Keybindings/

このためにsedスクリプトをどのように拡張できますか?

ベストアンサー1

bashを使用している場合、実際にsedは必要ありません。

s="org.gnome.Terminal.Legacy.Keybindings"
g=${s//.//}/

読むパラメータ拡張${parameter/pattern/string}他の多くの有用な情報を含むbashのマニュアルページ()セクションを参照してください。

sed では複数の式を指定することもできます。

s="org.gnome.Terminal.Legacy.Keybindings"
g=$(sed -e 'y,.,/,' -e 's,$,/,' <<<$s)

リテラル文字を受け入れるコマンドを使用するときは、エスケープする必要はyありません。.y

おすすめ記事