私のsed構文にどのような問題があるかを提案してください。
ssh [email protected] sed -i '/archive_command/ s/#BARMAN#[ ]*//g' /var/lib/pgsql/data/postgresql.conf"
sed: -e expression #1, char 17: missing command
私の目標は、リモートコンピュータから#BARMAN#文字列を削除することです。
私のローカルコンピュータでこれを行うと、次のように動作します。
sed -i '/archive_command/ s/#BARMAN#[ ]*//g' /var/lib/pgsql/data/postgresql.conf"
答え1
文法エラー。
次のようにする必要があります。
ssh postgres@host 'sed -i "/archive_command/ s/#BARMAN#[ ]*//g" /var/lib/pgsql/data/postgresql.conf"'
コマンドの周りに引用符を忘れました。エスケープする必要がないように、単一引用符の代わりに二重引用符を追加しました。