sed 오류: OS X에서 "RE에 \1이 정의되지 않았습니다."

sed 오류: OS X에서 "RE에 \1이 정의되지 않았습니다."

나는 OS X 10.10.5다음 명령을 사용하고 있습니다.

$ ls foo*
foo123bar.pdf
$ for f in foo*; do echo "$f" | sed -E 's:foo:bar:';done
bar123bar.pdf
$ for f in foo*; do echo "$f" | sed -E 's:foo:(&):';done
(foo)123bar.pdf
$ for f in foo*; do echo "$f" | sed -E 's:\(foo\):(\1):';done
sed: 1: "s:foo:(\1):": \1 not defined in the RE

오류가 발생합니다.

내 질문은: 위의 마지막 명령에서 생성된 오류를 어떻게 수정할 수 있습니까?

답변1

아래에서 -E캡처 그룹을 생성하려면 따옴표가 없는 괄호를 사용해야 합니다.

sed -E 's:(foo):(\1):'

관련 정보