如何根据类似于 /etc/hosts 的文件的 IP 地址创建网络文件

How to create network file based on IP address from file similar to /etc/hosts

我有一个将 IP 地址映射到主机名的文件。它的格式类似于主机文件,包含一个 IP 地址到主机名映射的列表。

例如

10.200.99.1    master1
10.200.99.2    master2
10.200.99.3    master3
10.200.99.4    slave1
10.200.99.5    slave2
10.200.99.6    slave3
...
...
...

我想为文件中提到的所有 IP 地址创建网络文件 (/etc/sysconfig/network)。

网络文件的格式是根据主机文件提到主机名的地方。

NETWORKING=yes
HOSTNAME=master1
NOZEROCONF=yes

对于每个 IP 地址,网络文件都创建在以 IP 地址命名的目录中,即 network/{IPAddress}

例如,对于 master1,文件路径应为 network/10.200.99.1,对于 master2,路径应为 network/10.200.99.2

我该怎么做?

到目前为止,我已经通过命令 echo $(<hosts) | awk '{print }' 获得了 IP 地址,通过 echo $(<hosts) | awk '{print } 获得了主机名。但这只会打印主机文件第一行的内容。

hosts 读取 iphostname 并将所需的输出写入 network/$ip

while read ip hostname; do
    printf '%s\n' "NETWORKING=yes" "HOSTNAME=$hostname" "NOZEROCONF NF=yes" > network/$ip
done < hosts