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

如何通过Linux命令批量调整AI生成SVG文件中id属性的位置

SVG属性批量迁移Shell实现方案

操作前请务必先备份所有源SVG文件,避免正则匹配误差导致文件损坏

实现逻辑

针对你给出的固定结构SVG代码,使用sed跨行匹配,将<g>标签的id="size1"属性迁移到其内部<text>标签的属性末尾,适配Adobe Illustrator导出的标准格式SVG文件。

操作步骤

  1. 新建脚本文件move_svg_id.sh,写入以下内容:
#!/bin/bash
# 批量处理SVG文件,迁移g标签的id="size1"到内部text标签
# 未传入目录参数时默认处理当前目录所有svg文件
TARGET_DIR="${1:-.}"

# 执行替换,自动生成.bak后缀的源文件备份
find "$TARGET_DIR" -type f -name "*.svg" -exec sed -i.bak -E '
/<g id="size1">/{
    N
    s/<g id="size1">([[:space:]]*)<text([^>]*)>/<g>\1<text\2 id="size1">/
}' {} \;

# 确认修改无误后可取消下方注释,删除所有备份文件
# find "$TARGET_DIR" -name "*.svg.bak" -delete
  1. 给脚本添加执行权限:
    chmod +x move_svg_id.sh
  2. 执行脚本:
  • 处理当前目录下所有SVG:./move_svg_id.sh
  • 处理指定目录下所有SVG:./move_svg_id.sh /your/svg/directory/path

验证说明

你可以先拿单个测试文件执行如下命令,确认输出符合预期后再批量操作:
sed -E '/<g id="size1">/{N;s/<g id="size1">([[:space:]]*)<text([^>]*)>/<g>\1<text\2 id="size1">/}' test.svg

如果你的SVG中<g id="size1"属性后还有其他属性,或者<g>和<text>之间的行数更多,可以调整正则匹配规则适配实际场景。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.20 08:45:03