免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 3558 | 回复: 16

文本操作 [复制链接]

论坛徽章:
0
发表于 2012-04-26 21:44 |显示全部楼层
本帖最后由 ljwd1000 于 2012-04-26 21:48 编辑

文本文件为file;此文件内存在的IP位置没有规律
  1. this is beijing 192.168.1.1 chaoyang 10.1.1.1
  2. this is beijing 192.168.1.2 chaoyang 10.1.1.2 aaaaa 172.16.1.2
  3. this is beijing 192.168.1.3 chaoyang 10.1.1.3
  4. this is beijing 192.168.1.4 chaoyang 10.1.1.4
复制代码
需要输出的结果为
  1. 192.168.1.1 10.1.1.1
  2. 192.168.1.2 10.1.1.2 172.16.1.2
  3. 192.168.1.3 10.1.1.3
  4. 192.168.1.4 10.1.1.4
  5.                                                
复制代码
现在只会写出取出IP的代码,求改进
  1. awk --re-interval '{for(i=1;i<=NF;i++)if($i~/[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}/)print $i}' file
复制代码

论坛徽章:
1
辰龙
日期:2014-05-22 11:38:58
发表于 2012-04-26 21:58 |显示全部楼层
  1. awk -vFS="[^0-9.]+" 'NF+=0' urfile
复制代码

论坛徽章:
0
发表于 2012-04-26 21:58 |显示全部楼层
本帖最后由 ljwd1000 于 2012-04-26 21:58 编辑

已经解决:
代码为:
  1. awk --re-interval '{for(i=1;i<=NF;i++){if($i~/[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}/){a[NR]=a[NR]" "$i}}}{print a[NR]}' file
复制代码

论坛徽章:
0
发表于 2012-04-26 22:02 |显示全部楼层
本帖最后由 ljwd1000 于 2012-04-26 22:03 编辑

回复 2# winway1988


    此代码有些投机,呵呵,我是要匹配IP的。如果里面别的字段有数字的话 这个代码就不好用了
   不过非常感谢,这个思路很好,学习了

论坛徽章:
0
发表于 2012-04-27 09:37 |显示全部楼层
回复 1# ljwd1000


    sed 's/[a-z]//g'

论坛徽章:
0
发表于 2012-04-27 10:31 |显示全部楼层
grep -oP '((\d{1,3}\.){3})\d+' ppp

论坛徽章:
3
2015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:51:162015年亚洲杯之阿曼
日期:2015-04-07 20:00:59
发表于 2012-04-27 18:04 |显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
13
15-16赛季CBA联赛之同曦
日期:2016-01-28 19:52:032015亚冠之北京国安
日期:2015-10-07 14:28:19NBA常规赛纪念章
日期:2015-05-04 22:32:03处女座
日期:2015-01-15 19:45:44卯兔
日期:2014-10-28 16:17:14白羊座
日期:2014-05-24 15:10:46寅虎
日期:2014-05-10 09:50:35白羊座
日期:2014-03-12 20:52:17午马
日期:2014-03-01 08:37:27射手座
日期:2014-02-19 19:26:54子鼠
日期:2013-11-30 09:03:56狮子座
日期:2013-09-08 08:37:52
发表于 2012-04-27 20:27 |显示全部楼层
zooyo 发表于 2012-04-27 18:04
简化一下.


又学会了一招,大神!

论坛徽章:
0
发表于 2012-04-27 21:06 |显示全部楼层
  1. awk '{gsub(/[a-z]+/,"")}1' file
复制代码

论坛徽章:
0
发表于 2012-04-27 21:19 |显示全部楼层
回复 4# ljwd1000


    是你的例子给的不好
  1. cat file
  2. this is beijing 192.168.1.1 chaoyang 10.1.1.1
  3. this is beijing 192.168.1.2 chaoyang 10.1.1.2 aaaaa 172.16.1.2
  4. this is beijing 192.168.1.3 chaoyang 10.1.1.3
  5. this is beijing 192.168.1.4 chaoyang 10.1.1.4
  6.    456
  7. awk '{gsub(/[a-z]+/,"")}1' file | awk '{ b=$0;t=gsub(/\./,"a",$1) ;   if(t=="3") print  b}'
  8.    192.168.1.1  10.1.1.1
  9.    192.168.1.2  10.1.1.2  172.16.1.2
  10.    192.168.1.3  10.1.1.3
  11.    192.168.1.4  10.1.1.4
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP