我有一个包含数百个地标的 kml 文件,我需要将每个地标移动到它自己的文件夹中。在这个过程中,我需要能够通过地标名称来命名/重命名每个文件夹。这可以通过使用 awk、perl 或 sed 来完成吗?我不是 XML 专家。
kml 格式如下:
<Folder>
<name>TEST</name>
<open>1</open>
<Placemark>
<name>LOCATION ONE</name>
[...]
</Placemark>
<Placemark>
<name>LOCATION TWO</name>
[...]
</Placemark>
<Placemark>
<name>LOCATION ONE & TWO</name>
[...]
</Placemark>
</Folder>
它需要是这样的:
<Folder>
<name>TEST</name>
<open>1</open>
<Folder>
<name>LOCATION ONE</name>
<Placemark>
<name>LOCATION ONE</name>
[...]
</Placemark>
</Folder>
<Folder>
<name>LOCATION TWO</name>
<Placemark>
<name>LOCATION TWO</name>
[...]
</Placemark>
</Folder>
<Folder>
<name>LOCATION ONE & TWO</name>
<Placemark>
<name>LOCATION ONE & TWO</name>
[...]
</Placemark>
</Folder>
</Folder>
到目前为止,我设法使用以下 awk 命令<placemark>
逐个<folder>
标签包装每个标签,但我还需要能够通过其地标名称重命名每个文件夹:
awk '/<Placemark>/{system("cat file1");next}1' file.kml
awk '/<\/Placemark>/{system("cat file2");next}1' file.kml
文件1:
<Folder>
<name>@@FOLDER@@</name>
<Placemark>
文件2
</Placemark>
</Folder>