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

Unix环境下移除XML中ID属性的sed命令修正求助

用sed移除XML中所有Id属性的正确命令

我来帮你修正sed命令!你要移除XML里所有的Id属性,之前的命令没达到预期是因为匹配规则没写对,咱们来一步步解决:

原始XML内容

<State>
  <Resident Id="100">
    <Name>Sample Name</Name>
    <PhoneNumber>1234567891</PhoneNumber>
    <EmailAddress>sample_name@example.com</EmailAddress>
    <Address>
      <StreetLine1>Street Line1</StreetLine1>
      <City>City Name</City>
      <StateCode>AE</StateCode>
      <PostalCode>12345</PostalCode>
    </Address>
  </Resident>
  <Resident Id="101">
    <Name>Sample Name1</Name>
    <PhoneNumber>1234567891</PhoneNumber>
    <EmailAddress>sample_name1@example.com</EmailAddress>
    <Address>
      <StreetLine1>Current Address</StreetLine1>
      <City>Los Angeles</City>
      <StateCode>CA</StateCode>
      <PostalCode>56666</PostalCode>
    </Address>
  </Resident>
  <Resident Id="" />
</State>

你之前尝试的命令问题分析

  • sed -i 's/^(ID=".*)".*/\1>/' Resident.xml:这个正则用了^(行首匹配),但Id并不是在行首;而且匹配逻辑错误,没办法正确定位并移除Id属性。
  • sed '/ ID.*/d' Resident.xml:这个命令会删除所有包含ID的整行,这显然不对,因为Resident标签后面还有子元素,不能删掉整行。

正确的sed命令

sed -i 's/\s*Id="[^"]*"//g' Resident.xml

命令解释:

  • \s*:匹配零个或多个空白字符(处理Id前面可能存在的空格)
  • Id="[^"]*":精准匹配Id="开头,直到下一个双引号结束的内容(不管引号里是空还是有数字)
  • //g:全局替换,把所有匹配到的Id属性替换为空(也就是移除)

执行后的期望结果

<State>
  <Resident>
    <Name>Sample Name</Name>
    <PhoneNumber>1234567891</PhoneNumber>
    <EmailAddress>sample_name@example.com</EmailAddress>
    <Address>
      <StreetLine1>Street Line1</StreetLine1>
      <City>City Name</City>
      <StateCode>AE</StateCode>
      <PostalCode>12345</PostalCode>
    </Address>
  </Resident>
  <Resident>
    <Name>Sample Name1</Name>
    <PhoneNumber>1234567891</PhoneNumber>
    <EmailAddress>sample_name1@example.com</EmailAddress>
    <Address>
      <StreetLine1>Current Address</StreetLine1>
      <City>Los Angeles</City>
      <StateCode>CA</StateCode>
      <PostalCode>56666</PostalCode>
    </Address>
  </Resident>
  <Resident />
</State>

内容的提问来源于stack exchange,提问作者Arvind Singh Kamlakar

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.14 06:51:36