次のように環境変数を設定するコマンドがあります。
BLACKLIST=$(python tools.py gen-blacklist)
*
これにより、次のようにドットとアスタリスクを含む文字列が生成されます*
。
LISTEN,UNLISTEN,NOTIFY,SHOW,REFRESH,pg_notify,.*remove,.*delete,.*update,.*create,.*insert
文字列内のすべてのドットとアスタリスクをエスケープできるようにしたいです。これが私が試したことです。
TEMP=$(python tools.py gen-blacklist) && BLACKLIST=$(echo ${TEMP/.\*/\\.\\*}) && echo $BLACKLIST
ただし、これは最初の発生のみを置き換えます。
LISTEN,UNLISTEN,NOTIFY,SHOW,REFRESH,pg_notify,\.\*remove,.*delete,.*update,.*create,.*insert
*
合計のすべての項目をどのように避けますか.
?
ベストアンサー1
xy 問題のにおいがするが、とにかく...
~からパラメータ拡張, これは${parameter/pattern/string}
-style 拡張についてドキュメントに記載されている内容です。
パターンが「/」で始まる場合、そのパターンはすべて文字列に置き換えられます。通常、最初の発生のみが置き換えられます。
したがって、${TEMP/.\*/\\.\\*}
次に変更する必要があります(すぐに続く追加情報を参照${TEMP//.\*/\\.\\*}
)。/
TEMP
これは
LISTEN,UNLISTEN,NOTIFY,SHOW,REFRESH,pg_notify,\.\*remove,\.\*delete,\.\*update,\.\*create,\.\*insert