加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

Bash:如何在文件的块中检查和插入字符串

发布时间:2020-12-15 22:06:57 所属栏目:安全 来源:网络整理
导读:在http.conf文件中有一个块,如: IfModule mime_module .../IfModule 假设使用bash,我该如何检查以下行 AddHandler application/x-httpd-php .php 已被添加到上一个区块内, 如果没有,我怎样才能在底部添加它 IfModule mime_module ... AddHandler applicatio
在http.conf文件中有一个块,如:

<IfModule mime_module>
    ...
</IfModule>

假设使用bash,我该如何检查以下行

AddHandler application/x-httpd-php .php

已被添加到上一个区块内,
如果没有,我怎样才能在底部添加它

<IfModule mime_module>
    ...
    AddHandler application/x-httpd-php .php
</IfModule>

这个块就在文件的中间:
文件内容不以此块开头或结尾.

编辑:
为了使这更难,我意识到我还需要进一步检查:很遗憾在我的问题中错过了它.如果上述行已作为注释行存在于所述块中

# AddHandler application/x-httpd-php .php

(char#可能是该行的第一个char,或者之前可能有一些间隔,因为它可能在AddHandler的char A之前有或没有一些空格),我只需要取消注释它,否则我继续添加如上所述.

解决方法

这可能对你有用:

sed -i ':a;$!N;/^<IfModule mime_module>.*</IfModule>/{s/# *(AddHandler application/x-httpd-php .php)/1/;/AddHandler application/x-httpd-php .php/!s/.*n/&n    AddHandler application/x-httpd-php .phpn/;p;d};/^<IfModule mime_module>/ba;P;D' input.conf

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读