이 오류가 발생합니다.
RE 오류: 잘못된 반복 연산자 피연산자
FreeBSD sed에서는 csh를 사용하십시오.
명령은 다음과 같습니다:
sed -rn 's/.*?VIEW ([^\s]+?) (AS .*?)\s([^\s]+?)\s([^\s]+?)/DROP VIEW \1;\nCREATE VIEW \1 \2;/p'
나는 보았다이 문제하지만 나는 s가 없지만 s가 *+
몇 개 있지만 *?
그것은 욕심이 없다는 것을 의미해야 합니다. 내가 뭘 잘못했나요?
답변1
이는 질문에 대한 의견에서 이미 언급되었지만 답변을 더 명확하게 하기 위해 다음과 같이 하십시오.
표준 정규식을 사용하든 확장 정규식 패턴을 사용하든 sed에서는 비탐욕적 일치를 사용할 수 없습니다.
일치를 종료해야 하는 문자를 알고 있는 경우 다음과 같은 기술을 사용할 수 있습니다.https://0x2a.at/blog/2008/07/sed--non-greedy-matching/
그리디 매칭:
$ echo "<b>foo</b>bar" | sed 's/<.*>//g'
bar
탐욕스럽지 않은 매칭:
$ echo "<b>foo</b>bar" | sed 's/<[^>]*>//g'
foobar