我发现awk命令能够将输入xml文件拆分成多个xml文件,并且它在Linux环境中运行良好。
awk’BEGIN {NUM = 0}; / xml version =“1.0”/ {NUM ++;文件名= NUM“输出….
你可以这样做:
awk 'BEGIN {NUM=0}; /xml version="1.0"/ {NUM++; filename=NUM "Output.xml"; print filename}; {print ^> filename}' Inputfile.xml
但是你的代码有问题,更好的改变:
awk 'BEGIN {NUM=0; filename=NUM "Output.xml";}; /xml version="1.0"/ {NUM++; filename=NUM "Output.xml"; } {print ^> filename }' Inputfile.xml
filename 在代码首先遇到之前未初始化 xml version="1.0" 它会抛出错误。 因此最好将其初始化 BEGIN 块。
filename
xml version="1.0"
BEGIN
要不就:
awk 'BEGIN {NUM=0} /xml version="1.0"/ {NUM++} {print ^> NUM "Output.xml"}' Inputfile.xml
否则只有 > 在你的代码中需要转义,这是要添加的 ^ 在它之前 cmd 。 通过我多年的使用 awk 在批处理文件中或在 cmd ,我逐渐喜欢在awk代码之外使用单引号,并记下那些字符需要转义。 - 一对双引号中的字符不需要逃脱,其他人需要。
>
^
cmd
awk
另一种选择,很多次更好,是将代码保存在文件中 xcode1.awk 并使用 -f 切换像 awk -f xcode1.awk Inputfile.xml 调用它。
xcode1.awk
-f
awk -f xcode1.awk Inputfile.xml