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

# 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

最佳答案

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

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

关于linux - Shell脚本:如果模式匹配,则替换整行,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/54483048/

10-16 19:14