免费注册 查看新帖 |

Chinaunix

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

[文本处理] IP地址如何精确截取呢 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2014-03-05 12:37 |只看该作者 |倒序浏览
[oracle@SAAS2 liang]$ cd
[oracle@SAAS2 ~]$ /sbin/ifconfig -a
eth0      Link encap:Ethernet  HWaddr 08:00:271:8C:91  
          inet addr:192.168.1.111  Bcast:192.168.1.255  Mask:255.255.255.0
          inet6 addr: fe80::a00:27ff:fed1:8c91/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:1173 errors:0 dropped:0 overruns:0 frame:0
          TX packets:696 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:145556 (142.1 KiB)  TX bytes:103190 (100.7 KiB)

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:40 errors:0 dropped:0 overruns:0 frame:0
          TX packets:40 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:6114 (5.9 KiB)  TX bytes:6114 (5.9 KiB)

sit0      Link encap:IPv6-in-IPv4  
          NOARP  MTU:1480  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:0 (0.0 b)  TX bytes:0 (0.0 b)

如我要得到红色部分。谢谢,另外有的服务器上可能有多个IP。

论坛徽章:
1
2015年迎新春徽章
日期:2015-03-04 09:58:11
2 [报告]
发表于 2014-03-05 12:46 |只看该作者
  1. [root@syh test]# ifconfig |awk  '/inet addr/{gsub(/addr:/,"",$2);print $2}'
  2. 192.168.11.231
  3. 127.0.0.1
  4. [root@syh test]#
复制代码

论坛徽章:
32
处女座
日期:2013-11-20 23:41:20双子座
日期:2014-06-11 17:20:43戌狗
日期:2014-06-16 11:05:00处女座
日期:2014-07-22 17:30:47狮子座
日期:2014-07-28 15:38:17金牛座
日期:2014-08-05 16:34:01亥猪
日期:2014-08-18 13:34:25白羊座
日期:2014-09-02 15:03:55金牛座
日期:2014-11-10 10:23:58处女座
日期:2014-12-02 09:17:52程序设计版块每日发帖之星
日期:2015-06-16 22:20:002015亚冠之塔什干火车头
日期:2015-06-20 23:28:22
3 [报告]
发表于 2014-03-05 12:54 |只看该作者
  1. grep -Po '(?<=inet addr:)\S+'
复制代码

论坛徽章:
2
水瓶座
日期:2014-02-28 14:20:09辰龙
日期:2014-06-16 13:18:51
4 [报告]
发表于 2014-03-05 13:04 |只看该作者
回复 3# yestreenstars


    这个不错,很简洁。肯定逆序环视

论坛徽章:
15
2015年辞旧岁徽章
日期:2015-03-03 16:54:15双鱼座
日期:2015-01-15 17:29:44午马
日期:2015-01-06 17:06:51子鼠
日期:2014-11-24 10:11:13寅虎
日期:2014-08-18 07:10:55酉鸡
日期:2014-04-02 12:24:51双子座
日期:2014-04-02 12:19:44天秤座
日期:2014-03-17 11:43:36亥猪
日期:2014-03-13 08:13:51未羊
日期:2014-03-11 12:42:03白羊座
日期:2013-11-20 10:15:18CU大牛徽章
日期:2013-04-17 11:48:45
5 [报告]
发表于 2014-03-05 13:10 |只看该作者
本帖最后由 rdcwayx 于 2014-03-05 13:11 编辑

可以再短些 (只适合GNU grep):
  1. grep -Po 'inet addr:\K\S+' file
复制代码

论坛徽章:
145
技术图书徽章
日期:2013-10-01 15:32:13戌狗
日期:2013-10-25 13:31:35金牛座
日期:2013-11-04 16:22:07子鼠
日期:2013-11-18 18:48:57白羊座
日期:2013-11-29 10:09:11狮子座
日期:2013-12-12 09:57:42白羊座
日期:2013-12-24 16:24:46辰龙
日期:2014-01-08 15:26:12技术图书徽章
日期:2014-01-17 13:24:40巳蛇
日期:2014-02-18 14:32:59未羊
日期:2014-02-20 14:12:13白羊座
日期:2014-02-26 12:06:59
6 [报告]
发表于 2014-03-05 13:12 |只看该作者
本帖最后由 jason680 于 2014-03-05 13:15 编辑

回复 1# last_day_1983

# /sbin/ifconfig -a | awk -F"[ \t:]+" -vdev=eth0 '$2=="Link"{d=$1==dev?1:0}d&&/inet addr:/{print $4}'
192.168.1.111

# /sbin/ifconfig eth0 | awk -F"[ \t:]+" '/inet addr:/{print $4}'
192.168.1.111


论坛徽章:
32
处女座
日期:2013-11-20 23:41:20双子座
日期:2014-06-11 17:20:43戌狗
日期:2014-06-16 11:05:00处女座
日期:2014-07-22 17:30:47狮子座
日期:2014-07-28 15:38:17金牛座
日期:2014-08-05 16:34:01亥猪
日期:2014-08-18 13:34:25白羊座
日期:2014-09-02 15:03:55金牛座
日期:2014-11-10 10:23:58处女座
日期:2014-12-02 09:17:52程序设计版块每日发帖之星
日期:2015-06-16 22:20:002015亚冠之塔什干火车头
日期:2015-06-20 23:28:22
7 [报告]
发表于 2014-03-05 13:13 |只看该作者
回复 5# rdcwayx

\K是什么?
   

论坛徽章:
8
技术图书徽章
日期:2013-08-22 11:21:28未羊
日期:2015-01-19 22:22:25巳蛇
日期:2014-08-11 16:53:08子鼠
日期:2014-05-29 09:04:44摩羯座
日期:2014-04-11 14:15:07丑牛
日期:2014-01-24 12:41:28金牛座
日期:2013-11-21 17:38:28射手座
日期:2015-01-21 08:50:32
8 [报告]
发表于 2014-03-05 13:19 |只看该作者
本帖最后由 huang6894 于 2014-03-05 13:20 编辑
  1. => /sbin/ifconfig -a|awk '/eth/{t=1};/lo/{t=0};/inet addr/&&t{gsub(/addr:/,"",$2);print $2}'
  2. 10.1.10.62
  3. 192.168.9.107
复制代码
菜菜来一个

论坛徽章:
15
2015年辞旧岁徽章
日期:2015-03-03 16:54:15双鱼座
日期:2015-01-15 17:29:44午马
日期:2015-01-06 17:06:51子鼠
日期:2014-11-24 10:11:13寅虎
日期:2014-08-18 07:10:55酉鸡
日期:2014-04-02 12:24:51双子座
日期:2014-04-02 12:19:44天秤座
日期:2014-03-17 11:43:36亥猪
日期:2014-03-13 08:13:51未羊
日期:2014-03-11 12:42:03白羊座
日期:2013-11-20 10:15:18CU大牛徽章
日期:2013-04-17 11:48:45
9 [报告]
发表于 2014-03-05 13:20 |只看该作者
本帖最后由 rdcwayx 于 2014-03-05 13:26 编辑
yestreenstars 发表于 2014-03-05 13:13
回复 5# rdcwayx

\K是什么?
  1. \K resets the starting point of the reported match. Any previously consumed characters are no longer included in the final match
复制代码
就是个重置刷新的标志,\K前的都不被包括在输出匹配里。

请看这里的演示:
http://regex101.com/r/gW3qP0

论坛徽章:
32
处女座
日期:2013-11-20 23:41:20双子座
日期:2014-06-11 17:20:43戌狗
日期:2014-06-16 11:05:00处女座
日期:2014-07-22 17:30:47狮子座
日期:2014-07-28 15:38:17金牛座
日期:2014-08-05 16:34:01亥猪
日期:2014-08-18 13:34:25白羊座
日期:2014-09-02 15:03:55金牛座
日期:2014-11-10 10:23:58处女座
日期:2014-12-02 09:17:52程序设计版块每日发帖之星
日期:2015-06-16 22:20:002015亚冠之塔什干火车头
日期:2015-06-20 23:28:22
10 [报告]
发表于 2014-03-05 13:25 |只看该作者
回复 9# rdcwayx

学习了,我能猜到它大概的作用,不过我想知道从哪可以获取这些正则的解释,既然有忽略前面的,那应该也有对应忽略后面的吧?
   
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP