我试图使用§
(0xA7) 作为 sed 命令的分隔符:
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
有用。
为什么?
因为 AFAIK sed需要一个ascii字符作为分隔符,所以您的 char 是 unicode
U+A7
:什么也不回报。
就像@steeldriver 在评论中所说,
§
用两个字节编码,看: