이 sed 명령에 어떤 문제가 있나요?

이 sed 명령에 어떤 문제가 있나요?

이 명령은 잘 작동합니다.

$ sed  -e '/foo/{g; d}' myfile   

하지만 여기에는 버그가 있습니다.

$ sed  -e '/foo/{g; a bar}' myfile
sed: -e expression #1, char 0: unmatched `{'

무슨 문제가 있나요?

답변1

a의 문에는 포함된 캐리지 리턴 문자( )가 아닌 sed실제 개행 문자 ( )가 필요합니다. 따라서 이 진술을 실제로 작동하게 만드는 유일한 방법은 다음과 같습니다.Cntl-jCtrl-ma

sed '/foo/{g;a\
bar
}'

입력 줄 뒤에 개행 문자를 추가해야 합니다. 여러 줄을 원하면 개행 문자를 인용하세요.

sed '/foo/{g;a\
bar\
xyzzy
}'

sed이것 은 그것 의 근본 으로 돌아갑니다 ed.

관련 정보