如何在文件中循环并按照 Openwrt 中的模板创建新文件?
How do I loop inside a file and create a new one following a template in Openwrt?
我有一个 OpenWRT 的策略路由模板,我有大量的 IP 需要插入到这个文件中。
基本上我需要的所有 ip 都在一个名为 bunchofips 的文件中
这是我需要遵循的模板:
config rule 'rule1'
option dest_ip 'ipcomeshere'
option proto 'all'
option use_policy 'secondary'
option sticky '1'
option src_ip '192.168.1.1/24'
基本上哪里写了rule1 我需要它为每个IP增加1。所以如果我有 300 个 ips,最后一个将是 rule300。 ipcomeshere是它应该从文件bunchofips中获取的地方,这个文件是这样的:
150.100.32.0/20
130.3.220.0/22
185.5.188.0/22
192.153.127.0/24
112.153.64.0/18
[...]
那么我需要什么样的脚本才能用所有这些 ip 制作这个新文件并能够 运行 在 OpenWRT 路由器中?这可能吗?
谢谢!
我不知道你想要什么格式的输出(例如,单个文件,300x 文件,作为标准输入传递给另一个进程)所以为了这个答案,我将把输出转储到一个文件 'allmyconfigs'
.
我还假设您想要用 'bunchofips'
中的整行来替换 'ipcomeshere'
,例如,将 'ipcomeshere'
替换为 '150.100.32.0/20'
。
对于这个答案,我们将使用一个简单的 echo
模板和几个变量来自定义每次通过循环的输出,例如:
> allmyconfigs # start with an empty file
counter=0
while read -r newip
do
counter=$((counter+1))
echo "config rule 'rule${counter}'
option dest_ip '${newip}'
option proto 'all'
option use_policy 'secondary'
option sticky '1'
option src_ip '192.168.1.1/24'" >> allmyconfigs
done < bunchofips
我有一个 OpenWRT 的策略路由模板,我有大量的 IP 需要插入到这个文件中。
基本上我需要的所有 ip 都在一个名为 bunchofips 的文件中 这是我需要遵循的模板:
config rule 'rule1'
option dest_ip 'ipcomeshere'
option proto 'all'
option use_policy 'secondary'
option sticky '1'
option src_ip '192.168.1.1/24'
基本上哪里写了rule1 我需要它为每个IP增加1。所以如果我有 300 个 ips,最后一个将是 rule300。 ipcomeshere是它应该从文件bunchofips中获取的地方,这个文件是这样的:
150.100.32.0/20
130.3.220.0/22
185.5.188.0/22
192.153.127.0/24
112.153.64.0/18
[...]
那么我需要什么样的脚本才能用所有这些 ip 制作这个新文件并能够 运行 在 OpenWRT 路由器中?这可能吗?
谢谢!
我不知道你想要什么格式的输出(例如,单个文件,300x 文件,作为标准输入传递给另一个进程)所以为了这个答案,我将把输出转储到一个文件 'allmyconfigs'
.
我还假设您想要用 'bunchofips'
中的整行来替换 'ipcomeshere'
,例如,将 'ipcomeshere'
替换为 '150.100.32.0/20'
。
对于这个答案,我们将使用一个简单的 echo
模板和几个变量来自定义每次通过循环的输出,例如:
> allmyconfigs # start with an empty file
counter=0
while read -r newip
do
counter=$((counter+1))
echo "config rule 'rule${counter}'
option dest_ip '${newip}'
option proto 'all'
option use_policy 'secondary'
option sticky '1'
option src_ip '192.168.1.1/24'" >> allmyconfigs
done < bunchofips