请建议我的 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"'
您忘记了命令前后的引号。并添加了双引号而不是单引号,这样就不需要转义它。