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

Regex求助:提取XML中Column节点属性为单行格式的实现方法

问题背景

现有结构如下的XML文件:

<Column
             sourceColumn="Column1"
             targetColumn="COLUMN1"
/>
<Column
             sourceColumn="Column2"
             targetColumn=
/>

需要得到如下格式输出,将每个Column节点的sourceColumn和targetColumn属性放在同一行,中间可用空格或下划线分隔:

sourceColumn="Column1"_targetColumn="COLUMN1"
sourceColumn="Column2"_targetColumn=

之前尝试的处理命令如下,输出结果不符合预期:

cat file.xml | grep "sourceColumn=\|targetColumn=" |tr '\n' ' ' | sed 's/sourceColumn=/\nsourceColumn=/g' >> file1.txt 
解决方案

原有命令的问题是替换所有换行后会残留XML节点闭合标记、多余空白字符,没有对属性行做专门的清理拼接,所以输出不符合要求。

推荐用更简单稳定的awk命令实现需求:

awk '/sourceColumn=/{
    # 保存sourceColumn行,先去掉前后空白
    s = $0
    gsub(/^[[:space:]]+|[[:space:]]+$/,"",s)
}
/targetColumn=/{
    # 清理targetColumn行前后空白
    gsub(/^[[:space:]]+|[[:space:]]+$/,"",$0)
    # 下划线分隔输出,要空格分隔就把"_"换成" "
    print s "_" $0
}' file.xml > file1.txt

执行后生成的file1.txt就是符合要求的结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 04:54:00