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

批量处理80000个XML文件:保留指定行内容的技术问询

批量处理XML文件保留指定行的方案

前置准备:备份文件

批量处理前务必先备份所有XML文件,避免误操作导致数据丢失:

cp -r /path/to/your/xml_directory /path/to/xml_backup

方案一:awk + Shell 循环(推荐)

awk在处理行号和字符串匹配时灵活性高,适合大文件批量场景。创建并执行以下脚本:

#!/bin/bash
# 遍历目标目录下所有.xml文件(若需包含子目录,见下方扩展)
for xml_file in /path/to/your/xml_directory/*.xml; do
    # 筛选保留指定行号或包含目标字符串的行,先输出到临时文件再替换原文件
    awk 'NR==41 || NR==65 || NR==120 || /InvestorIdentifier/ || /PoolID/' "$xml_file" > "$xml_file.tmp" && mv "$xml_file.tmp" "$xml_file"
done

扩展:处理子目录中的XML文件

如果目录下存在嵌套子目录,用find命令遍历所有.xml文件:

find /path/to/your/xml_directory -name "*.xml" -exec sh -c '
    awk "NR==41 || NR==65 || NR==120 || /InvestorIdentifier/ || /PoolID/" "$1" > "$1.tmp" && mv "$1.tmp" "$1"
' _ {} \;

方案二:GNU sed 实现

若系统已安装GNU sed,也可使用以下脚本:

#!/bin/bash
for xml_file in /path/to/your/xml_directory/*.xml; do
    sed -n '41p;65p;120p;/InvestorIdentifier/p;/PoolID/p' "$xml_file" > "$xml_file.tmp" && mv "$xml_file.tmp" "$xml_file"
done

注意事项

  • 先选取少量测试文件运行脚本,确认保留的内容符合预期后,再批量处理全部文件
  • 若在Windows环境下操作,可通过Git Bash、WSL(Windows Subsystem for Linux)运行上述Shell脚本
  • 脚本中/path/to/your/xml_directory需替换为你的XML文件实际存放路径

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 15:20:32