コンテナファイルの特定の行に変数を書き込む

コンテナファイルの特定の行に変数を書き込む

Dockerコンテナの31行目のファイルに変数を作成する必要があります。私はbashスクリプトを使用します

私のコマンドは次のとおりです。

txt=" 
log-bin
server_id=1"
docker exec $container sed -i "31i\
$txt /etc/mysql/my.cnf

次のエラーが発生します。

sed: -e expression #1, char 8: extra characters after command

私のファイルに何も追加されていません...

助けてください?

ベストアンサー1

私はドッカーコンテナについて何も知りませんが、特定の行の前に変数の内容を挿入したい場合は、次のGNU sedコマンドを使用できます。

VAR="$txt" sed -i.bk '31{h;s:.*:printf "%s" "$VAR":e;G}' /etc/mysql/my.cnf

安全上の理由から、上記のコマンドは拡張子です.bk

おすすめ記事