sed가“char 53 : 종결되지 않은`s '명령”출력을하는 이유


28

왜이 bash 스크립트

ssh $SERVER bash <<EOF
sed -i "s/database_name: [^ ]*/database_name: kartable_$ME" $PARAM_FILE
exit
EOF

출력->

sed: -e expression #1, char 53: unterminated `s' command

답변:


38

s명령은 sed특정 구문을 사용합니다.

s/AAAA/BBBB/options

여기서 s대체 명령입니다 AAAA바꾸려는 정규식입니다, BBBB당신이로 교체 할 것과하고 options같은 글로벌로 대체 명령의 옵션 중 하나를 인 ( g) 또는 케이스를 무시 ( i).

특정 경우에는 최종 슬래시가 누락되었습니다. /추가 sed하면 제대로 작동합니다.

➜  ~  sed 's/database_name: [^ ]*/database_name: kartable_$ME/'
database_name: something
database_name: kartable_$ME

info sed 'The "s" Command' s 명령의 전체 설명 및 사용법이 포함됩니다.


9

/끝에 없어요 .

sed -i "s/database_name: [^ ]*/database_name: kartable_$ME/" $PARAM_FILE

1
그것은 누락 된 /아니라 g, g원하는 될 수있는 세계입니다.
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.