我有一对大/长的 XML 文件,我使用 nawk 来分解它们,这样我就可以更轻松地处理与我的项目实际相关的部分。我拥有的代码正在做我想做的事,但它生成的文件缺少描述性文件名,这使得我需要花费更多时间来识别哪些子 XML 文件对应于我想要使用的数据。这是我现在拥有的:
将这个文件分开的代码:
nawk ' {print > "kingresult"(NR%1?i:i++)".txt"; }' i=1 PI.txt
将这个文件分开的代码:
nawk -v RS="</?Results>" -v FS="<Result>" '{ for(N=1; N<=NF; N++) if($N ~ /<[/]/) print FS $N > "stateresult00"++C".xml" }' 20140805_AllState.xml
第一个 XML 文件正在逐行拆分;第二个是在 nawk 找到新的“结果”元素时被分开。然而,在这两种情况下,生成的文件名如下所示:
结果1.xml 结果2.xml 结果3.xml
... 等等。
如果文件名更具描述性,会节省很多时间,看起来像这样:
result1-John.xml result2-Jane.xml result3-Jake.xml
在第一个文件的情况下,如果只有该行的第一个单词被合并到文件名中是可以接受的。
对于第二个 XML 文件,最好将 < CandidateName > 元素中的第一个单词添加到文件名中。如何修改我的代码以让 nawk 创建更具描述性的文件名?