我需要在 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) 我是Puppet的新手,但很清楚这些概念.Puppet Manifests调用Puppet Modules,模块执行实际任务.
我试图了解Puppet模块层发生了什么.命令如何实际执行?以下面的例子为例,哪些命令实际传递给操作系统?此外,定义在哪里?
package { 'ntp':
ensure => installed,
}
我想做的很简单:
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不存在,我不希望它执行此任务。
我真的很纠结这个逻辑。我尝试了下面的解决方案,但它在木偶运行期间抛出异常。
有没有更好的方法来完成这项任务?理想情况下,我只想使用“文件”而避免使用“exec”。但在这一点上,我会满足于一个解决方案!