You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在RedHat 7.9中用AWK将Visual TOM XML转多份CSV的可行性问询

用AWK在RedHat 7.9实现Visual TOM XML到多份CSV的转换

完全可以用AWK实现你的需求,RedHat 7.9自带的GNU AWK(gawk)具备处理XML结构化文本的能力,能轻松应对属性缺失、多重复子节点(参数、资源)这类场景。

核心实现思路

针对你需要的7份CSV,可按以下逻辑编写AWK脚本:

1. 应用属性CSV

  • 跟踪<application>标签块,提取应用名称、retained、comment等属性;
  • 遇到</application>时,将收集到的字段输出到app_attributes.csv,缺失属性用空值填充以保证列对齐。

2. 应用/作业属性CSV

  • 先捕获当前应用名称,进入<job>块后提取作业名称、retained、comment、information等属性;
  • 每条作业对应一行记录,输出到app_job_attributes.csv,缺失属性留空。

3. 应用/作业脚本CSV

  • 在<job>块内定位<script>标签,处理可能的多行脚本内容,拼接完整文本;
  • 关联当前应用和作业名称,输出到app_job_scripts.csv。

4. 应用/作业参数CSV

  • 在<job>块内遍历所有<parameter>子节点,每个参数单独占一行;
  • 每行关联对应的应用和作业名称,输出到app_job_parameters.csv。

5. 应用/作业ExpectedResource CSV

  • 遍历<job>内的<ExpectedResource>节点,提取资源名称等属性;
  • 每条资源对应一行记录,关联应用和作业名称后输出到app_job_resources.csv。

6. 应用/作业Node属性CSV

  • 在<job>块内提取<node>标签的x、y、z属性;
  • 关联应用和作业名称,输出到app_job_nodes.csv。

7. 应用Node属性CSV

  • 在<application>块内提取自身的<node>标签属性;
  • 关联应用名称,输出到app_nodes.csv。

关键实现技巧

  • 用变量标记当前上下文(比如in_app、in_job),明确当前处于应用还是作业块;
  • 用sub()或gsub()正则匹配提取XML属性值,例如sub(/.*name="([^"]+)".*/, "\\1", $0)提取名称属性;
  • 处理多行内容(如脚本)时,可临时修改记录分隔符RS,或逐行拼接文本;
  • 提前定义各CSV的表头,确保输出的CSV结构统一。

内容的提问来源于stack exchange,提问作者Romain93110

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.23 07:39:55