Shell脚本:如果模式匹配,则替换整行

时间:2019-02-01 16:04:05

标签: linux sed

我有一个包含以下内容的文件:

# pam_faildelay.so    
auth    required    pam_faildelay.so    delay=2000000

如果其中包含pam_faildelay,如何替换整行?所做的更改不应影响评论。
我尝试了以下命令,但它会更新注释。

sed -i '/pam_faildelay.so/c\auth   optional   pam_faildelay.so  delay=4000000' filename

使用上述命令,我的文件如下所示:

auth   optional   pam_faildelay.so  delay=4000000
auth   optional   pam_faildelay.so  delay=4000000

1 个答案:

答案 0 :(得分:1)

您替换不是以#开头的行:

sed ' s/^[^#]*pam_faildelay\.so.*/auth   optional   pam_faildelay.so  delay=4000000/' filename