![](/img/trans.png)
[英]Given the IP and netmask, how can I calculate the network address using bash?
[英]using bash how can i get the network device name and ip address in one line?
我想獲取網絡接口設備名稱(ens ###)及其關聯的IP地址(###。###。###。###)。 我有解決方案來獲得一個或另一個,但我找不到能夠將每對(Name + IP)輸出到一行的東西。
這是獲取IP的命令
ip address | grep -Eo 'inet (addr:)?([0-9]*\.){3}[0-9]*' | grep -Eo '([0-9]*\.){3}[0-9]*' | grep -v '127.0.0.1'
在這里,我可以得到設備名稱
ip address | grep -v lo | cut -d ' ' -f2 | tr ':' '\n' | awk NF
但是我想要一種方法來獲得兩個輸出每個集合到他們自己的行,這樣的事情
ens32 10.0.0.100
ens33 10.1.0.100
編輯:
這是ip地址的示例輸出
[root@centos ~]# ip address
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN qlen 1
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: ens32: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 00:00:00:00:00:00 brd ff:ff:ff:ff:ff:ff
inet 10.0.0.100/23 brd 10.0.1.255 scope global dynamic ens32
valid_lft 83040sec preferred_lft 83040sec
inet6 0000::000:0000:0000:0000/64 scope link
valid_lft forever preferred_lft forever
3: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 00:00:00:00:00:00 brd ff:ff:ff:ff:ff:ff
inet 10.1.0.100/24 brd 10.0.2.255 scope global dynamic ens33
valid_lft 1277sec preferred_lft 1277sec
inet6 0000::000:0000:0000:0000/64 scope link
valid_lft forever preferred_lft forever
解決方案:
這兩個都會給我相同的期望輸出。 謝謝您的幫助!
ip -o addr show scope global | awk '/^[0-9]:/{print $2, $4}' | cut -f1 -d '/'
ip -o addr show scope global | tr -s ' ' | tr '/' ' ' | cut -f 2,4 -d ' '
嗯,像往常一樣, awk
就像一個魅力。
ip address |
awk '
/^[0-9]:/{
name=substr($2, 1, length($2) - 1)
}
/^[ ]*inet /{
split($2, a, "/")
if (name != "lo")
print name,a[1]
}
'
將ouptut:
ens32 10.0.0.100
ens33 10.1.0.100
:
with substr。 lo
,則不打印輸出,從而過濾環回接口。 如果你需要一個單行,請嘗試這個(感謝Dougie提供更精確的ip
命令):
ip -oneline -4 addr show scope global | tr -s ' ' | tr '/' ' ' | cut -f 2,4 -d ' '
-oneline
將每個接口的輸出強制為單行。
然后,我們cut
出只是接口名稱和IP從輸出, tr
anslating有點沿途(用於切擺脫額外的東西)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.