擅长:python、mysql、java
<p>另一个答案只使用<code>sed</code></p>
<pre><code>/vm/{
H
x
s/\n/ /g
s/ \[kfg-ap.\] out: / /
x
blab
}
x
p
:lab
</code></pre>
<p>像这样调用(将上述文件另存为<code>filter.sed</code>):</p>
<pre><code>sed -n -f filter.sed text.txt
</code></pre>
<p>如果<code>vm</code>匹配,则存储在保持缓冲区中。然后交换整个缓冲区以删除行中的换行符和无用的kfg前缀,再次交换。你知道吗</p>
<p>如果不匹配,请再次交换缓冲区并打印。你知道吗</p>
<p>相当简单&效果很好(cornercase:如果log以vm行结尾,则可以省略)</p>