sed は端末に正しいファイルを出力しますが、新しいファイルには置き換えはありません。

sed は端末に正しいファイルを出力しますが、新しいファイルには置き換えはありません。

コマンドラインから以下のシェルスクリプトを実行すると、コピーされたファイルが画面に出力され、置き換えが正しく行われたことがわかりますが、作成された新しいファイルは元のファイルの元のファイルの内容を表示します。 。 html - 新しいファイルに側面を保存するときに何が間違っているのでしょうか?

# other relevant vars above #
cp original.html MobileApp/www/index.html

sed  -E'' "s#MOBILE_APP_API_URL#\"$mobile_app_api_url\"#g;
    s#MOBILE_APP_MEDIA_URL#\"$mobile_app_media_url\"#g;
    s#MOBILE_APP_ENVIRONMENT#\"$environment\"#g" MobileApp/www/index.html

//行の先頭にsed -iを使用すると期待どおりに機能しますが、移植性のため、-iパラメータを使用したくありません。

ベストアンサー1

この場合、私は選択します

sed -E -e "s#MOBILE_APP_API_URL#\"$mobile_app_api_url\"#g" \
       -e "s#MOBILE_APP_MEDIA_URL#\"$mobile_app_media_url\"#g" \
       -e "s#MOBILE_APP_ENVIRONMENT#\"$environment\"#g" \
       original.html >MobileApp/www/index.html

この-Eフラグは引数を使用せず、複数の-eセクションを使用してコマンドラインを読み取ることができる塊に分割できます。

cpソースファイルを処理し、リダイレクトを使用してターゲットファイルに直接書き込むため、このプロセスを完全にスキップできます。

おすすめ記事