方法一:
$/sbin/ifconfig ethX | awk '/inet addr/ {print $2}' | cut -f2 -d ":"
方法二:
$/sbin/ifconfig ethX | awk '/inet addr/ {print $2}' | awk -F: '{print $2}'
方法三:
$/sbin/ifconfig ethX | sed -ne 's/\(\)addr:\([[:digit:]]\)\(\)/\2/p'
把ethX中的X替换为需要查看网卡的序号,如eth0,eth1
$/sbin/ifconfig | awk '{if ( $1 == "inet" && $3 ~ /^Bcast/) print $2}' | cut -f2 -d ":"
如果是IPv6网络,把上面的命令做简单修改即可,如:
$/sbin/ifconfig | awk '/inet6/ {print $3}' ----全部
$/sbin/ifconfig ethX | awk '/inet6/ {print $3}' ----单个
ipAddr=1921681100
echo ${ipAddr##}
这样就提取出了100。
Bash中字符串的掐头去尾方法:
# 表示掐头,% 表示去尾
助记:键盘上# 在前面,键盘上% 在后面。
单个#或%的表示最小匹配,双个#或%表示最大匹配。
也就是说,当匹配有多种方案的时候,选择匹配最大长度还是最小长度。
用awk也可以:
ifconfig eth0 | awk '/inet addr/{print $2}' | awk -F '{print $NF}'第一种方法:使用grep和cut取值
第二种方法:使用grep和awk(默认分隔符为空格)取值
第三种方法:使用grep和awk(多分隔符)
第四种方法:使用sed和awk
第五种方法:使用grep和awk(多分隔符与加号+)
第六种方法:awk (分隔符及取行)
第七种方法:grep 网卡文件
第八种方法:head取行 awk分割
如果有什么不懂的话可以去看看《Linux就该这么学》这本书,非常适合新手学习Linux。
我给出前三个的答案吧
#!/bin/bash
OUTPUT=jk0701_xxx_kstxt
/sbin/ifconfig eth0 | sed -n '/inet addr:/ s/inet addr:/IPADDR=/pg' | awk -F" " '{print $1}' >$OUTPUT
/sbin/ifconfig eth0 | sed -n '/HWaddr/ s/^HWaddr /HWADDR=/pg' >> $OUTPUT
netstat -an |grep ":23" |grep "ESTABLISHED" | grep -cv "grep" >> $OUTPUT
\d+\\d+\\d+\\d\:\d+
import javautilregex;
// 表达式对象
Pattern p = Patterncompile("\\d+\\\\d+\\\\d+\\\\d\\:\\d+");
// 创建 Matcher 对象
Matcher m = pmatcher("");
// 是否找到匹配
boolean found = mfind();
if( found )
{
String foundstring = mgroup();
int beginPos = mstart();
int endPos = mend();
}
以上就是关于怎么使用LINUX获取本机的网络接口eth1的IP地址和MAC地址全部的内容,包括:怎么使用LINUX获取本机的网络接口eth1的IP地址和MAC地址、shell脚本如何提取ip地址最后一位,如192.168.1.100中的100、请给出Linux中eth0的IP地址和广播地址的指令,需使用cut、awk、grep、sed指令。等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)