首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在Mac上使用脚本更改XML属性的特定值

如何在Mac上使用脚本更改XML属性的特定值
EN

Stack Overflow用户
提问于 2011-12-15 12:07:04
回答 1查看 3.7K关注 0票数 3

我的任务是编写一个脚本,在大约1000台Mac电脑上更改XML文件中的特定值。显然,这需要脚本化,最好只使用Mac上已经可用的工具(即不需要额外的安装)。这里的最终目标是在与active directory相关的特定文件中禁用IPv6。例如:

旧文件:

代码语言:javascript
运行
复制
<IPv4>
    <script>Automatic</script>
</IPv4>

<IPv6>
    <script>Automatic</script>
</IPv6>

新文件:

代码语言:javascript
运行
复制
<IPv4>
    <script>Automatic</script>
</IPv4>

<IPv6>
    <script>__INACTIVE__</script>
</IPv6>

我已经尝试过搜索,并且有几个sed脚本可以让我走到一半,但是没有足够接近的地方。我不能安装任何XML解析程序,因为这需要在所有Mac上尽可能自动化。

编辑:次要问题-

使用awk或sed,我是否可以计算它进行更改的次数,即计算它发现的实例数?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-12-15 12:12:57

使用 awk**:**的

代码语言:javascript
运行
复制
awk '/<IPv6>/,/<\/IPv6>/ {sub(/Automatic/,"__INACTIVE__")}1' xml_file > new_xml_file

使用 sed**:行内编辑的**

代码语言:javascript
运行
复制
sed -i '/<IPv6>/,/<\/IPv6>/s/Automatic/__INACTIVE__/' xml_file

要在混合中添加计数的:

代码语言:javascript
运行
复制
awk '
/<IPv6>/,/<\/IPv6>/ {sub(/Automatic/,"__INACTIVE__"); if ($0~/__/) count++}1 
END{ print FILENAME, count >>"countfile"}' xml_file> new_xml_file

END语句将捕获您在其上运行脚本的Filename和一个名为countfile的文件中的更改的counts,并将appending保存到该文件以用于统计分析。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8514985

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档