Linux 从模板创建多个文件并动态替换内容

Linux 从模板创建多个文件并动态替换内容,linux,bash,sed,nagios,icinga,Linux,Bash,Sed,Nagios,Icinga,正如标题中所述,我想从一个模板创建多个文件,并动态替换一个固定关键字 如果我这样做 $ sed s/XX/{01..05}/g templates/pXX.conf 我有点接近了,因为我得到了第一个结果的正确输出,但是数字02-04有一个错误 因为在icinga中不需要分离每个配置文件(但这是一个额外的好处),所以可以将结果放入单个输出文件中 例如: //template.conf object Host "pXX" { display_name = "RasPi XX" ... }

正如标题中所述,我想从一个模板创建多个文件,并动态替换一个固定关键字

如果我这样做

$ sed s/XX/{01..05}/g templates/pXX.conf
我有点接近了,因为我得到了第一个结果的正确输出,但是数字02-04有一个错误

因为在icinga中不需要分离每个配置文件(但这是一个额外的好处),所以可以将结果放入单个输出文件中

例如:

//template.conf
object Host "pXX" {
  display_name = "RasPi XX"
  ...
}
这将导致:

//p01.conf <- ascending filenames would be a bonus
object Host "p01" {
  display_name = "RasPi 01"
  ...
}
//p02.conf
object Host "p02" {
  display_name = "RasPi 02"
  ...
}
// and so on

//p01.conf有效。好极了!({01..99}中的i使其具有可伸缩性,tho)@EBZ kriemendt:这是一个非常好的观点——尽管必须小心使用前导的“0”。
while $i < number: read file; replace content; output file;
for i in 01 02 03; do sed "s/XX/$i/" template.conf > template$i.conf; done