kal*_*kal 9 vim scripting awk sed
我有一个像输入一样的xml文件的用例
Input:
<abc a="1">
<val>0.25</val>
</abc>
<abc a="2">
<val>0.25</val>
</abc>
<abc a="3">
<val>0.35</val>
</abc>
...
Output:
<abc a="1"><val>0.25</val></abc>
<abc a="2"><val>0.25</val></abc>
<abc a="3"><val>0.35</val></abc>
Run Code Online (Sandbox Code Playgroud)
我在输入格式的文件中有大约200K行,如何快速将其转换为输出格式.
在 vim 中你可以这样做
:g/<abc/ .,/<\/abc/ join!
Run Code Online (Sandbox Code Playgroud)
通常 :join 会在加入之前在每行的末尾添加一个空格,但会!抑制这一点。
一般来说,我建议使用 Python、Ruby 或 Perl 等语言中的适当 XML 解析库来操作 XML 文件(我推荐 Python+ElementTree),但在这种情况下,使用正则表达式解决方案很简单。