取消注释搜索字符串上的行,同时忽略文件中的大小写

取消注释搜索字符串上的行,同时忽略文件中的大小写

以下是我的 cron 文件条目:

#Ansible: test2
*/15 * * * * ansible-playbook  /web/playbooks/automation/detect401MORTEN/va_action.yml | tee -a /web/playbooks/automation/detect401MORTEN/cron.out

# #Cron to auto restart MIMSJASPER tomcat server for all environments if it is down

#Ansible: test3
# */15 * * * * ansible-playbook  /web/playbooks/automation/detect401MORTEN/va_action.yml | tee -a /web/playbooks/automation/detect401MORTEN/cron.out

下面的 sed 不适用于不区分大小写的情况。

sed '/^#.*morten/s/^#//ig' wladmin.cron

期望的输出:

#Ansible: test2
*/15 * * * * ansible-playbook  /web/playbooks/automation/detect401MORTEN/va_action.yml | tee -a /web/playbooks/automation/detect401MORTEN/cron.out

 #Cron to auto restart MIMSJASPER tomcat server for all environments if it is down

#Ansible: test3
 */15 * * * * ansible-playbook  /web/playbooks/automation/detect401MORTEN/va_action.yml | tee -a /web/playbooks/automation/detect401MORTEN/cron.out

你能建议一下吗?

答案1

您需要使地址选择不区分大小写 - 而不是替换命令。如果您有 sed 的 GNU 实现,则可以将大写I修饰符应用于地址正则表达式,如下所示:

sed '/^#.*morten/Is/^#//' wladmin.cron

替换标志g不是必需的 - 事实上,只能有一个锚定模式实例,例如^#.

请参阅GNU sed 手册:4.3 通过文本匹配选择行

相关内容