我有一个/etc/hosts
文件的以下示例:
127.0.0.1 localhost
# The following lines are desirable for IPv6 capable hosts
::1 ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
ff02::3 ip6-allhosts
## vagrant-hostmanager-start
<ipaddress1> namenode
<ipaddress2> secondarynamenode
<ipaddress3> slave1
<ipaddress4> slave2
< it can be more slave nodes here>
## vagrant-hostmanager-end
在尝试配置hadoop集群时,我需要在以下配置中分割
/etc/hosts
文件:namenode
和secondarynamenode
转到名为masters
的文件slaves*
转到名为slaves
的文件namenode
,并且有0个或更多奴隶。 解析
bash
中提到的文件,并将这些部分分别写入提到的相应部分(masters
和slaves
),最简单的方法是什么?我可以在Python
中轻松完成此操作,但我需要在bash
中完成。masters
看起来像: <ipaddress1> namenode
<ipaddress2> secondarynamenode
而
slaves
像这样: <ipaddress3> slave1
<ipaddress4> slave2
最佳答案
使用awk,您可以执行以下操作:
awk '/namenode/{print >"masters"; next} /slave[0-9]/{print > "slaves"}' /etc/hosts
关于bash - 如何正确,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23355006/