Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我有一个包含一堆单独代码块的 XML 文件。每个都需要在自己的文件中...每个都以 . 开头<?xml version="1.0" encoding="UTF-8"?>和结尾</endxml>。BASH 有没有一种方法可以让我获取这个单个文件并将每个代码块都放在它自己的文件之上?
<?xml version="1.0" encoding="UTF-8"?>
</endxml>
如果</endxml>保证自己在单独的行上,您可以尝试这个(不一定是最好的):
awk 'BEGIN {nout=1;} /^<\/endxml>$/ {close("xml"nout".xml"); ++nout;} !/^<\/endxml>$/ {print >("xml"nout".xml");}'
它将创建文件xml1.xml,xml2.xml等等。删除该</endxml>行,并保留 XML 标头。
xml1.xml
xml2.xml