このbashスクリプトの文字列をエスケープする方法は?

このbashスクリプトの文字列をエスケープする方法は?

これは私のものですfoo.sh

#!/bin/bash

sed -i -- 's/<meta http-equiv="Content-Security-Policy" content="default-src * data: blob: 'unsafe-inline' 'unsafe-eval' ws: wss:;">/<meta my custom meta>/g' ../app-prod/ios/project/www/application/index.html

一重引用符、二重引用符、およびアスタリスク記号をエスケープする方法を理解していません。

ベストアンサー1

sedの周りに二重引用符を使用する必要があるかもしれません。次に、式で二重引用符とワイルドカードをエスケープします。次のようにする必要があります。

sed -i "s|<meta http-equiv=\"Content-Security-Policy\" content=\"default-src \* data: blob: 'unsafe-inline' 'unsafe-eval' ws: wss:;\">|<meta my custom meta>|g" /path/to/file.html

(完全な式を二重引用符で囲む必要があるかどうかわかりません。一重引用符で囲まれた式で一重引用符をエスケープすることが特定の条件で失敗する可能性があることを覚えているようです。名前を指定することはできません。)

おすすめ記事