Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1572078
  • 博文数量: 289
  • 博客积分: 11086
  • 博客等级: 上将
  • 技术积分: 3291
  • 用 户 组: 普通用户
  • 注册时间: 2006-06-22 17:06
个人简介

徐小玉的博客。

文章分类

全部博文(289)

文章存档

2023年(6)

2022年(1)

2021年(2)

2020年(9)

2019年(9)

2018年(6)

2017年(10)

2016年(10)

2014年(3)

2013年(4)

2011年(12)

2010年(16)

2009年(14)

2008年(119)

2007年(48)

2006年(20)

我的朋友

分类: LINUX

2017-09-06 15:23:19

如何过滤匹配到一个文本中每一行第一次出现的IP地址

比如文件里

1.2.3.4   lalalalalalala balalalala clalalala 2.3.4.5 dlalalalalal
dkdkdkd  dkdkdkkdkd  dkdkdkd 3.4.5.6 4.5.6.7


只提取出
1.2.3.4
3.4.5.6

============

awk '{for(i=1;i<=NF;i++) if(match($i,"[0-9].[0-9].[0-9].[0-9]")) {print $i ; next}}' file2 

  awk
  '{
  for(i=1;i<=NF;i++)
  if(match($i,"[0-9].[0-9].[0-9].[0-9]"))
  {
  print $i ;
  next
  }
  }' file2

  1. 普通用法
 match(字符串,正则表达式)
 内置变量RSTART表示匹配开始的位置,RLENGTH表示匹配的长度
 如果匹配到了,返回匹配到的开始位置,否则返回0
 $ awk 'BEGIN{start=match("Abc Ef Kig",/ [A-Z][a-z]+ /);print RSTART,RLENGTH}'
 4 4



阅读(1050) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~