Regex 使用sed在OSX上设置permitrotlogin
我正在试图找出如何使用OSXRegex 使用sed在OSX上设置permitrotlogin,regex,macos,bash,sed,Regex,Macos,Bash,Sed,我正在试图找出如何使用OSXsed启用permitrotlogin 我知道OSXsed问题,您必须在开始时给出一个空字符串 我只需要正则表达式我实际上需要做: 如果#permitrotlogin是或#permitrotlogin否,则替换为permitrotlogin yes 我有: sudo sed -i '' 's/#PermitRootLogin no/PermitRootLogin yes/g' /etc/sshd_config 但这不包括如果##permitrotlogin yes操
sed
启用permitrotlogin
我知道OSXsed
问题,您必须在开始时给出一个空字符串
我只需要正则表达式我实际上需要做:
如果#permitrotlogin
是或#permitrotlogin
否,则替换为permitrotlogin yes
我有:
sudo sed -i '' 's/#PermitRootLogin no/PermitRootLogin yes/g' /etc/sshd_config
但这不包括如果
##permitrotlogin yes
操作系统X中的sed
版本要求备份文件后缀在-i
之后有一个参数
如果不需要备份文件,则必须提供显式空字符串:
sed -i '' 's/^#?PermitRootLogin \(no\|yes\)/PermitRootLogin yes/' /etc/sshd_config
如果没有这个参数,它将使用s/../../
命令作为后缀,将/etc/sshd\u config
作为sed编辑命令
请注意,在Snow Leopard和El Capitan之间的某段时间,此SSH配置文件的位置从
/etc/sshd\u config
移动到/etc/SSH/SSH\u config
双字符串替换指示器s/s/
?好的,这使sed正常工作,但是正则表达式仍然不能工作…在命令的开头有一个额外的s/
。另外,|
需要在sed
中进行ESA,以形成备选方案。似乎是/etc/ssh/sshd_config
,至少在10。12@CharlieGorichanaz也在El Capitan。我已经更新了答案来说明这一点。