Sed 正在尝试注释dovecot conf文件中的某些行

Sed 正在尝试注释dovecot conf文件中的某些行,sed,Sed,我试图对这句话进行评论: passdb { driver = pam [session=yes] [setcred=yes] [failure_show_msg=yes] [max_requests=<n>] [cache_key=<key>] [<service name>] args = dovecot } passdb{ 驱动程序=pam [session=yes][setcred=yes][failure\u show\u msg

我试图对这句话进行评论:

passdb {
  driver = pam
   [session=yes] [setcred=yes] [failure_show_msg=yes] [max_requests=<n>]
   [cache_key=<key>] [<service name>]
  args = dovecot
}
passdb{
驱动程序=pam
[session=yes][setcred=yes][failure\u show\u msg=yes][max\u requests=]
[cache_key=][]
args=dovecot
}
通过sed:

sed -i '1!N; s/passdb {\
  driver = pam\
   \[session=yes\] \[setcred=yes\] \[failure_show_msg=yes\] \[max_requests=\<n\>\]\
   \[cache_key=\<key\>\] \[\<service name\>\]\
  args = dovecot\
}/#passdb {\
#  driver = pam\
#   [session=yes] [setcred=yes] [failure_show_msg=yes] [max_requests=<n>]\
#   [cache_key=<key>] [<service name>]\
#  args = dovecot\
#}/' t
sed-i'1!Ns/passdb{\
驱动程序=pam\
\[session=yes\]\[setcred=yes\]\[failure\u show\u msg=yes\]\[max\u requests=\\]\
\[cache\u key=\\]\[\\]\
args=dovecot\
}/#passdb{\
#驱动程序=pam\
#[session=yes][setcred=yes][failure\u show\u msg=yes][max\u requests=]\
#[cache_key=][]\
#args=dovecot\
#}/“不

但是它与我需要的不匹配,有人能告诉我我做错了什么吗?

如果您所要做的只是注释
passdb
}
之间的行,那么以下内容就足够了

sed -i '/^passdb {/,/}/s/^/#/g' file

如果您所要做的只是注释
passdb
}
之间的行,那么以下内容就足够了

sed -i '/^passdb {/,/}/s/^/#/g' file
使用
awk

awk '/^passdb {/,/^}/ {$0="#"$0}1' file
使用
awk

awk '/^passdb {/,/^}/ {$0="#"$0}1' file

太快了,太快了,tnx:)太快了,太快了,tnx:)