
ファイルの内容は次のとおりです。
<?xml version='1.1' encoding='UTF-8'?>
<sites>
<site>
<url>https://host.com/path/another-path/stable-1.630/update-center.json</url>
</site>
</sites>
私は以下を試しました:
sed -i '' -e "s/stable-\d+.\d+/stable-2.233/g" ${FILE_PATH}
本質的に私の意図は「stable-」の後のバージョン番号を変更することです。しかし、テキストを置き換えないようです。
答え1
1つのアプローチは、バージョン番号の正規表現をあまり「トリッキー」にすることです。検索する文字列は、stable-
スラッシュ以外の文字が複数の後に続く文字列であると仮定できます。ただし、この正規表現自体にはスラッシュが含まれているため、区切り文字を使用すると便利です。その他/
表現自体よりもsed
。この例は%
コマンドの区切り文字として使用されます。sed
s
sed -i '' -e "s%stable-[^/]*%stable-2.233%g" ${FILE_PATH}