我正在尝试编写一个脚本,该脚本每次启动新的 EC2 实例时都会注释掉 /etc/sudoers 中的以下行:
Defaults requiretty
我认为最好的方法是使用内联 sed 搜索和替换或搜索和插入。问题是 Defaults 和 requiretty 之间也可能有 1+ 个空格/制表符。什么是有效的 sed 解决方案?
答案1
杰伊的回答几乎不变sed
:
sed -i 's/^Defaults[ \t]+requiretty/# Defaults requiretty/g' /etc/ssh/sshd_config
答案2
我个人会使用 Perl
perl -pi -e 's/(^Defaults\s+requiretty)/# $1/g' /etc/ssh/sshd_config
(行必须以 开头Defaults
才能匹配。如果您不想要这样,只需删除^
。将捕获和\s+
之间的任意数量的空格。)Defaults
requiretty