내 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"'
명령 주위에 따옴표를 잊어버렸습니다. 이스케이프할 필요가 없도록 작은따옴표 대신 큰따옴표를 추가했습니다.