Bash 스크립트를 사용하여 다음 sed 표현식을 실행할 때
t=$(sed -n "s/^([0-9]+\.){2,2}(\*|[0-9]+)(\-.*){0,1}$/p" ./apps/core-website/settings/website.config)
다음과 같은 오류가 발생합니다.
sed: -e expression #1, char 41: unterminated `s' command
답변1
s//
오류 메시지는 정확합니다. 명령을 종료하지 않았습니다 . 패턴 뒤에는 선택적으로 , 등 s/pattern/replacement/
의 한정자가 와야 합니다 g
. 이미 가지고 있으므로 대체할 수 없습니다.i
p
s/pattern/p
또한 ERE(확장 정규식) 모드를 사용하고 있다는 점도 알아야 하지만 sed
이 작업을 수행한다는 메시지가 표시되지 않으므로 일반 정규식으로 가정합니다. 이를 위해 사용됩니다 sed -E
.