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

如何修正命令从XML的AsyncLogger标签提取指定键值对并合规输出?

解决方案

下面提供两种常用命令行工具的实现方式,直接达成你需要的逗号分隔输出格式:

方法一:使用 sed 命令

利用正则捕获属性值,精准匹配并替换格式:

echo '<AsyncLogger name="org.mule.service.http" level="WARN"/>' | sed -E 's/^<AsyncLogger name="([^"]+)" level="([^"]+)"\/>$/\1,\2/'

说明:

  • -E 启用扩展正则表达式,简化捕获组的写法
  • ([^"]+) 捕获双引号内的全部内容(匹配非引号字符),第一个捕获组对应name的值,第二个对应level的值
  • 替换规则\1,\2将两个捕获组的内容用逗号连接,直接输出目标格式

如果是处理日志配置文件,只需把echo部分替换为文件名即可:

sed -E 's/^<AsyncLogger name="([^"]+)" level="([^"]+)"\/>$/\1,\2/' your-log-config.xml

方法二:使用 awk 命令

通过分割字符快速提取目标字段:

echo '<AsyncLogger name="org.mule.service.http" level="WARN"/>' | awk -F '"' '{print $2","$4}'

说明:

  • -F '"' 指定双引号作为字段分隔符
  • 分割后第2个字段是name的属性值,第4个字段是level的属性值,用逗号拼接输出即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 03:46:12