免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 3183 | 回复: 17
打印 上一主题 下一主题

[系统管理] 大家一起想想不同的方法 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2012-08-04 15:13 |只看该作者 |倒序浏览
一般的,我们用ifconfig命令查看网卡信息。现在我想要大家编写一个脚本,输出如下内容:
eth0 196.128.0.1
lo 127.0.0.1
即输出所有的网卡加上其对应的IP。我是新手,写了半天。希望这里的大牛们一起分享下自己的方法。我的答案于晚上跟帖给出。

论坛徽章:
0
2 [报告]
发表于 2012-08-04 17:41 |只看该作者
本帖最后由 kk5234 于 2012-08-04 23:23 编辑
  1. ifconfig |sed -n '/Link encap/{:1;N;/\n$/!{$!b1};s/\(\w*\).*inet addr:\([0-9.]*\).*/\1 \2/p}'
复制代码

论坛徽章:
0
3 [报告]
发表于 2012-08-04 20:50 |只看该作者
  1. #!/bin/bash
  2. #filename.sh by smallpboy
  3. tmp=`ifconfig | grep –v –E ‘^\s’ | awk ‘{print $1}’`
  4. for t in ${tmp[*]}
  5. do
  6.         ip=ifconfig | grep $t –A 1 | egrep –o ‘intr addr:.{7,15}\s’ | awk –F : ‘{print $2}’`
  7.         echo “$t $ip”
  8. done
复制代码
为什么我的贴这么冷清呢?  唉。

论坛徽章:
0
4 [报告]
发表于 2012-08-04 20:53 |只看该作者
能否简单解释下/Link encap/{:1;N;/\n$/!{$!b1};的运行过程啊?我相信有很多跟我一样的小白不明白这块。。

回复 2# kk5234


   

论坛徽章:
3
2015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:51:162015年亚洲杯之阿曼
日期:2015-04-07 20:00:59
5 [报告]
发表于 2012-08-04 21:58 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
5
未羊
日期:2014-08-04 16:15:21天秤座
日期:2014-08-13 13:52:372015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:56:112015亚冠之浦和红钻
日期:2015-06-29 15:30:48
6 [报告]
发表于 2012-08-04 23:16 |只看该作者
  1. ifconfig | awk 'BEGIN{RS="\n\n";FS="[ :]+"}/Bcast/{print $1,$15}/^lo/{print $1,$9}'
复制代码
来个awk版本的

论坛徽章:
5
未羊
日期:2014-08-04 16:15:21天秤座
日期:2014-08-13 13:52:372015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:56:112015亚冠之浦和红钻
日期:2015-06-29 15:30:48
7 [报告]
发表于 2012-08-04 23:24 |只看该作者
回复 5# zooyo

既然/S那么好用,为啥取网卡别名的时候又用了/w呢???

   

论坛徽章:
0
8 [报告]
发表于 2012-08-04 23:25 |只看该作者
回复 5# zooyo


    确实写复杂了。以后还需要多加练习!版主的方法学习了~

论坛徽章:
0
9 [报告]
发表于 2012-08-04 23:27 |只看该作者
回复 4# smallpboy

ifconfig命令的输出是看作以空行进行段落分隔,匹配到含Link encap的行执行N命令,将每一段落所有行都读入pattern space,再进行替换。这里用到两个标签跳转,空行和尾行。需要注意N匹配空行是写法是/\n$/,不能是/^$/。写得太复杂了,可以参考版主写的。   

论坛徽章:
1
辰龙
日期:2014-05-22 11:38:58
10 [报告]
发表于 2012-08-05 11:13 |只看该作者
本帖最后由 winway1988 于 2012-08-05 11:14 编辑
  1. /sbin/ifconfig | awk -vFS='Link encap:.*inet addr:' -vRS='' '{sub(/[ \t]+.*/,"",$2)}1'
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP