将输入重定向到几个不同的输出文件

将输入重定向到几个不同的输出文件

我有一个如下所示的输入文件:

<event>
foo
bar
</event>
<event>
random text
</event>

我想将其分成几个输出文件,这样每个文件都有一个<event>...</event>.

我尝试使用 执行此操作awk,但我不清楚如何将输出重定向到不同的输出文件。是否可以?或者我必须求助于 python 之类的东西吗?

答案1

如果我们告诉重新awk

awk '
    /<event>/{
        start=1
        n++
    }
    start{
        print >"output" n
    }
    /<\/event>/{
        start=0
        close("output" n)
    }
    ' input.file

相关内容