web-dev-qa-db-ja.com

検索をsedし、スラッシュを含む変数に置き換えます

テキストファイル内の文字列を変数に置き換えようとしています。

私はこのコードを使用しています:

sed -i "s/search text \/TAG\//replace text ${variable}/" ${textfile}

変数の内容は/newTAG/です。そして、変数の内容が問題であり、最初と最後で/をより正確に記述します。

両方の/が削除され、コンテンツがnewTAGのみである場合、すべてが正常に機能します。

私はすでに以下を試しました

sed -i "s/search text \/TAG\//replace text "${variable}"/" ${textfile}
sed -i 's/search text \/TAG\//replace text "${variable}"/' ${textfile}

誰も私を助けることができますか?ありがとう

6
Bird Person

正規表現の区切り文字として/以外のものを使用します(たとえば、コロン:):

sed -i "s:search text /TAG/:replace text ${variable}:" "${textfile}"

または、変数の/をエスケープします。

9
muru