使用 bash 在特定行之后插入新行



假设我有一个文件iptables_manager.py,并且想在特定行之后插入一行。

输入:

        tables['filter'].add_chain('local')
        tables['filter'].add_rule('neutron-filter-top', '-j $local',
                                  wrap=False)
    builtin_chains = {4: {'filter': ['INPUT', 'OUTPUT', 'FORWARD']},
                      6: {'filter': ['INPUT', 'OUTPUT', 'FORWARD']}}

输出:

        tables['filter'].add_chain('local')
        tables['filter'].add_rule('neutron-filter-top', '-j $local',
                                  wrap=False)
        tables['filter'].add_rule('FORWARD', '-p tcp --tcp-flags SYN,RST SYN -j TCPMSS --set-mss 1360',
                                  wrap=False, top=True)
    builtin_chains = {4: {'filter': ['INPUT', 'OUTPUT', 'FORWARD']},
                      6: {'filter': ['INPUT', 'OUTPUT', 'FORWARD']}}

有没有一种简单的方法可以使用 bash 脚本来实现这一点?

提前感谢您的帮助。

对于要在wrap=False后插入乘法行的特定情况,您可以使用 sed r ead,它将在匹配的行之后读取文件(包含):

sed '/wrap=False/r new_lines.txt' input.txt > output.txt

或者,您可以使用 a fter 命令,该命令将在匹配的行后插入指定的文本:

sed '/wrap=False/a         tables['''filter'''].add_rule('''FORWARD''', '''-p tcp --tcp-flags SYN,RST SYN -j TCPMSS --set-mss 1360''',n                                  wrap=False, top=True)n' input.txt > output.txt

两者都应该做同样的事情,但正如你所看到的,a fter 命令可能看起来很丑陋。

相关内容

  • 没有找到相关文章

最新更新