前言
有时我们需要批量产生一些有规律变化的设置或配置文件。此时我们可以借助shell编程,批量产生。程序可去我的GitHub网站下载
程序
例如我们有一个 demo.temp 文件其内容格式如下:
guihun
learn shell
learn github
PROGRAM_LENGTH : _LENGTH_
PROGRAM_SIZE : _SIZE_
PROGRAM_NAME : _NAME_
我们想批量替换其中的“_LENGTH_”, “_SIZE_”, “_NAME_”。并将替换内容后的文件以不同的文件名表示。
(1) “_NAME_” 关键词会替换成如下 list 文件里的名字:
file_one
file_two
(2) “_LENGTH_” 关键词会依次替换成 5.0 6.0 7.0
(3) “_SIZE_” 关键词会依次替换成 2 3
则shell程序 test.sh 如下:
#!/bin/csh
foreach element (`cat list`)
echo $element
foreach size(2 3)
foreach length(5.0 6.0 7.0)
set filename = "option_name_${element}_size_${size}_length_${length}"
echo "file name is : " $filename
cp demo.temp $filename
sed -i "" "s/_SIZE_/$size/" $filename
sed -i "" "s/_LENGTH_/$length/" $filename
sed -i "" "s/_NAME_/$element/" $filename
echo ${filename}
end
end
end
结果
执行 source test.sh 命令,则会在当前文件夹产生如下文件:
我们随机打开 option_name_file_one_size_3_length_6.0 文件,其内容为: