【发布时间】:2020-09-27 01:14:49
【问题描述】:
我正在尝试自动化 Adobe CC Cleaner 工具的创建方式,然后要求管理员取消注释特定行或在我们的情况下为每个产品的所有行取消注释,以便按照 macOS 的 here 指示进行全面清理。
我想知道如何删除/取消注释 <!-- 仅在每个产品/行上具有前导空格和 --> 而不会影响其他行。
这里是使用 Adobe CC 2020 产品上的工具生成 cleanup.xml 文件后的输出示例:
<?xml version="1.0" encoding="UTF-8"?>
<Products>
<Properties>
<Property name="eulaAccepted">1</Property>
</Properties>
<CreativeCloud>
<!--<Product productName="AdobeCreativeCloud" version="2.0"/>-->
<!--<Product productName="After Effects" version="17.0.5"/>-->
<!--<Product productName="Camera Raw" version="12.2"/>-->
<!--<Product productName="STI_Color_MotionPicture_HD" version="1.2"/>-->
<!--<Product productName="STI_ColorCommonSet_RGB_HD" version="1.1"/>-->
<!--<Product productName="Bridge" version="10.0.3"/>-->
<!--<Product productName="Illustrator" version="24.0.3"/>-->
<!--<Product productName="CoreSync" version="4.3.34"/>-->
<!--<Product productName="InDesign" version="15.0.2"/>-->
<!--<Product productName="Photoshop" version="21.1.1"/>-->
<!--<Product productName="HD_ASU" version="2.0"/>-->
<!--<Product productName="Lightroom" version="3.2"/>-->
<!--<Product productName="Media Encoder" version="14.0.4"/>-->
<!--<Product productName="CCX Process" version="3.5.1"/>-->
<!--<Product productName="Premiere Pro" version="14.0.4"/>-->
<!--<Product productName="CC Library" version="3.7.4"/>-->
</CreativeCloud>
<AAM></AAM>
<AdobeIdCredentials></AdobeIdCredentials>
<CS6></CS6>
<CS5></CS5>
<CS4></CS4>
<CS3></CS3>
</Products>
【问题讨论】:
-
你为什么要用
sed这样的面向行的工具来解析xml而不是像xmlstartlet或xmllint这样的语法感知解析器或使用xpath? -
@Inian 我认为这样的工具无法执行与 OP 想要的 cmets 相关的任务。我想我们会看看他们是否使用其中一种工具得到答案。