imaginative Asked: 2012-06-18 14:19:47 +0800 CST2012-06-18 14:19:47 +0800 CST 2012-06-18 14:19:47 +0800 CST sed:如何在匹配行的开头插入注释 772 我正在尝试编写一个脚本,每次启动新的 EC2 实例时都会在 /etc/sudoers 中注释掉以下行: Defaults requiretty 我假设最好的方法是使用内联 sed 搜索和替换或搜索和插入。问题是 Defaults 和 requiretty 之间也可能有 1 个以上的空格/制表符。什么是有效的 sed 解决方案? scripting bash sed 2 个回答 Voted Best Answer Ladadadada 2012-06-18T14:37:08+08:002012-06-18T14:37:08+08:00 杰伊的回答几乎不会改变sed: sed -i 's/^Defaults[ \t]+requiretty/# Defaults requiretty/g' /etc/ssh/sshd_config Jay 2012-06-18T14:30:23+08:002012-06-18T14:30:23+08:00 我个人会使用 Perl perl -pi -e 's/(^Defaults\s+requiretty)/# $1/g' /etc/ssh/sshd_config (行必须Defaults以匹配它开始。如果你不想那样,只需删除^。这将捕获和\s+之间的任意数量的空格。)Defaultsrequiretty
杰伊的回答几乎不会改变
sed
:我个人会使用 Perl
(行必须
Defaults
以匹配它开始。如果你不想那样,只需删除^
。这将捕获和\s+
之间的任意数量的空格。)Defaults
requiretty