并感谢您的帮助。 我有一个txt文件作为模板: === Template.txt ============================================ ==============
BT-qos- profile = "ABCDEF",
BT-type- collecte = "%{Request}",
BT-sous- type-collecte = "%{Request}",
Framed-IP- Address = "XX.XX.XX.XX",
Framed-IP- Netmask = "255.255.255.240",
BT-domain = "bbox.fr",
===== Ips_file.txt ======================================= ===================
10.20.30.40
11.22.33.44
111.222.333.444
(each ip is in a line)
=============================================== ======================= 我想创建一个shell脚本,可以从第二个文件读取ips并复制每个ip并放入第一个文件“XX.XX.XX.XX”。 每次复制后保存文件。我将拥有与Ips一样多的文件。
我不熟悉shell脚本,所以如果有人能帮助我,我将不胜感激。
答案 0 :(得分:1)
目前尚不清楚如何命名这些文件。
为简单起见,让我们用越来越多的数字来命名它们。
你可以逐行阅读ips,
并使用sed
替换模板中的值并生成输出文件:
placeholder='XX\.XX\.XX\.XX'
i=1
while IFS= read -r ip; do
sed -e "s/$placeholder/$ip/" Template.txt > $i.txt
((i++))
done < Ips_file.txt
答案 1 :(得分:0)
您也可以awk
执行此操作:
awk 'FILENAME=="template.txt"{template=template$0"\n"} FILENAME=="ips_file.txt"{template_out=template; gsub(/XX\.XX\.XX\.XX/,$1, template_out); print template_out > $1".txt"}' template.txt ips_file.txt
这将通过ip地址为每个IP名称创建一个新文件,并附加.txt