小编use*_*593的帖子

使用sed修改xml文件

我需要在 xml 文件中搜索位于开始/结束标记中的一些文本,如果找到,则在结束标记之前写一行文本。

例如,在XML 文件中,我需要在MyTag中搜索“MyText1”。如果找到,请在结束标记之前添加FoundIt,如下所示

 <MyTag>
 <Tag1>MyText1</Tag1>
 <Tag2>MyText2</Tag2>
 <Tag3>MyText3</Tag3>
 <Tag4>MyText4</Tag4>
 <FoundTag1>FoundIt</FoundTag1>
 </MyTag>
Run Code Online (Sandbox Code Playgroud)

我能够使用 sed 搜索范围并打印 MyText1。但我真正想要做的是在结束标签之前添加“FoundIt”标签。

脚本

/<MyTag>/,/<\/MyTag>/{
/<Tag1>MyText1</Tag1>/p
}
Run Code Online (Sandbox Code Playgroud)

XML 文件内容

<XmlFile>

<BeginTag>
<SomeTag>Text</SomeTag>
</BegingTag>

<MyTag>
<Tag1>MyText1</Tag1>
<Tag2>MyText2</Tag2>
<Tag3>MyText3</Tag3>
<Tag4>MyText4</Tag4>
</MyTag>

<EndTag>
<SomeTag>Text</SomeTag>
</EndTag>

</XmlFile>
Run Code Online (Sandbox Code Playgroud)

xml sed

2
推荐指数
1
解决办法
4016
查看次数

puppet如何向操作系统发送命令?

我是Puppet的新手,但很清楚这些概念.Puppet Manifests调用Puppet Modules,模块执行实际任务.

我试图了解Puppet模块层发生了什么.命令如何实际执行?以下面的例子为例,哪些命令实际传递给操作系统?此外,定义在哪里?

package { 'ntp':
  ensure => installed,
}

puppet

1
推荐指数
1
解决办法
526
查看次数

Puppet:文件资源仅当文件存在时

我想做的很简单:

1.

复制/source/file/target/file. 我使用以下方法实现了这一点:

file { 'my_file_copy':
  ensure   => file,
  source   => 'file:/source/file',
  path     => "/target/file",
}
Run Code Online (Sandbox Code Playgroud)

2.

但是,如果文件/source/file不存在,我不希望它执行此任务。

我真的很纠结这个逻辑。我尝试了下面的解决方案,但它在木偶运行期间抛出异常。

puppet:如果存在一个文件,则复制另一个文件

有没有更好的方法来完成这项任务?理想情况下,我只想使用“文件”而避免使用“exec”。但在这一点上,我会满足于一个解决方案!

puppet

1
推荐指数
1
解决办法
2万
查看次数

标签 统计

puppet ×2

sed ×1

xml ×1