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

Luc*_*one 4 bash awk

在http.conf文件中有一个块,如:

<IfModule mime_module>
    ...
</IfModule>
Run Code Online (Sandbox Code Playgroud)

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

AddHandler application/x-httpd-php .php
Run Code Online (Sandbox Code Playgroud)

已经添加到上一个块中,
如果没有,我怎样才能在其底部添加它

<IfModule mime_module>
    ...
    AddHandler application/x-httpd-php .php
</IfModule>
Run Code Online (Sandbox Code Playgroud)

此块位于文件的中间:
文件内容不以此块开头或结尾.


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

# AddHandler application/x-httpd-php .php
Run Code Online (Sandbox Code Playgroud)

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

kev*_*kev 7

awk '
/mime_module/{
    flag=1
}

flag && /x-httpd-php/{
    has=1
}

flag && /<\/IfModule>/{
    flag = 0
    if(!has)
        print "AddHandler application/x-httpd-php .php"
}
1' input.conf
Run Code Online (Sandbox Code Playgroud)