sed + 删除远程机器上的字符串

sed + 删除远程机器上的字符串

请建议我的 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"'

您忘记了命令前后的引号。并添加了双引号而不是单引号,这样就不需要转义它。

相关内容