我试图编写一个脚本,每次启动一个新的EC2实例时,将在/ etc / sudoers中注释掉以下行:
Defaults requiretty
我假设这样做的最好方法是内联sedsearch和replace或search和插入。 问题是在Defaults和requiretty之间可能会有1+个空格/制表符。 什么是高效的sed解决scheme?
周杰伦的答案几乎与sed没有任何变化:
sed -i 's/^Defaults[ \t]+requiretty/# Defaults requiretty/g' /etc/ssh/sshd_config
我个人使用Perl
perl -pi -e 's/(^Defaults\s+requiretty)/# $1/g' /etc/ssh/sshd_config
(线必须以Defaults开始,以匹配它,如果你不想这样做,只需删除^ 。 \s+将捕获Defaults和requiretty之间的任意数量的空格。