sedは文字列を.に置き換え、文字列も。

sedは文字列を.に置き換え、文字列も。

私のmyfile.confには以下が含まれています。

ServerAlias *.mysite.com

次に変換しようとしています。

ServerAlias *.xxmysite.com

しかし、私は次のようになります。

ServerAlias *.xx.mobilsem.com

areemplazar="ServerAlias *."
reemplazo="ServerAlias *.xx"
sed -i ''  -- "s|${areemplazar}|${reemplazo}|g"  ./myfile.conf

「ServerAlias*」などのエスケープポイントを使用するとき。 、交換はありません。

私は何が間違っていましたか?

ベストアンサー1

正規表現のメタ文字であるピリオド.とアスタリスクは、文字通り*処理するためにエスケープする必要があります。

入力ファイルの例:

$ cat input.txt
ServerAlias *.mysite.com

sed 's/ServerAlias \*\./&xx/' input.txt
ServerAlias *.xxmysite.com

おすすめ記事