簡體   English   中英

如何只從主機文件中獲取IP地址? 巴什

[英]how to get only the ip-address from a hosts file? Bash

我有一個/ 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個或更多的slaves。 如bash所述解析該文件,並將各部分分別寫入相應部分(主從)的最簡單方法是什么? 我可以在Python中輕松完成此操作,但我需要在bash中完成。 大師看起來像:

<ipaddress1>
<ipaddress2>

奴隸就像:

<ipaddress3>
<ipaddress4>

就是這樣,兩個文件僅包含ip地址,而不包含計算機的名稱...原因是如果存在計算機的名稱,Hadoop將無法正常工作。 我如何使用awkbash做到這一點? 我有以下命令:

awk '/namenode/{print >"masters"; next} /slave[0-9]/{print > "slaves"}' /etc/hosts

但這會使機器名稱保持打開狀態...

這是使用awk一種方法:

awk '
$2~/namenode/ { print $1 > "masters" } 
$2~/slave/ { print $1 > "slaves"}
' /etc/hosts

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM