我有一个包含以下内容的文件:
# 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/