sed: §를 구분 기호로 사용할 때 대체 표현식의 잘못된 옵션

sed: §를 구분 기호로 사용할 때 대체 표현식의 잘못된 옵션

§sed 명령의 구분 기호로 (0xA7)을 사용하려고 합니다 .

sed -i'' 's§error_log = /var/log/php-fpm.log§error_log = /proc/self/fd/2§' /etc/php5/php-fpm.conf

나는 얻다:

sed: bad option in substitution expression

또는 (다른 Linux 시스템에서):

sed: -e expression #1, char 66: Unknown option to 's'

내가 그것을 다음과 같이 바꾸면 @:

sed -i'' 's@error_log = /var/log/php-fpm.log@error_log = /proc/self/fd/2@' /etc/php5/php-fpm.conf

효과가있다.

왜?

답변1

왜냐면 내가 아는 한다음을 기대하고 있습니다.문자를 구분 기호로 사용하면 문자는 유니코드입니다 U+A7.

man ascii | grep A7

반품아무것도 없다.

@steeldriver가 의견에서 말했듯이 §2바이트로 인코딩합니다. 다음을 참조하세요.

$ od -c <<< §
0000000 302 247  \n
0000003

관련 정보