免费注册 查看新帖 |

Chinaunix

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

[文本处理] grep后的结果过滤获取数据 [复制链接]

论坛徽章:
8
戌狗
日期:2013-10-12 11:37:19双子座
日期:2014-05-06 14:40:39巨蟹座
日期:2014-06-14 09:22:18戌狗
日期:2014-09-18 16:05:44巨蟹座
日期:2014-12-27 16:37:26酉鸡
日期:2015-01-20 18:39:022015年亚洲杯之沙特阿拉伯
日期:2015-04-20 22:38:242015亚冠之萨济拖拉机
日期:2015-06-19 16:01:03
发表于 2015-04-30 10:03 |显示全部楼层
本帖最后由 prcardin 于 2015-04-30 10:27 编辑

action:dostr,m_uno:yx_hlld_93325534096,u_no:555523245,qd:yx.zhuanfa,plat:ANDROID,udno:d657c535-3avb-37bn-67ad-676689wer,server:10010,name_name:ither,ip:192.18.48.56
,dostr_time:2014-10-01 01:54:24,name_exp:0987015,mi:100,currency:CNY,amount:1000,dostr_channel:HGFG,dono:5476_001_57788563424_89471819952885,qd_dono:a54bnt

类似上面的多行数据,grep “dostr”获得的。现在想获得下面的数据,mi:后的值大于50的行。
注:列数不是固定列,所以想避开通过指定列获取的方法

论坛徽章:
9
2015亚冠之大阪钢巴
日期:2015-06-04 11:47:30丑牛
日期:2015-01-22 15:49:26巳蛇
日期:2015-01-22 10:11:18巨蟹座
日期:2014-11-20 10:55:03天蝎座
日期:2014-11-16 22:10:26处女座
日期:2014-11-16 11:01:10申猴
日期:2014-09-19 11:12:37双鱼座
日期:2014-07-25 10:09:54程序设计版块每日发帖之星
日期:2015-08-24 06:20:00
发表于 2015-04-30 10:08 |显示全部楼层
回复 1# prcardin
  1. awk -F'mi:|,' '/mi/&&$5>50'
复制代码

论坛徽章:
8
戌狗
日期:2013-10-12 11:37:19双子座
日期:2014-05-06 14:40:39巨蟹座
日期:2014-06-14 09:22:18戌狗
日期:2014-09-18 16:05:44巨蟹座
日期:2014-12-27 16:37:26酉鸡
日期:2015-01-20 18:39:022015年亚洲杯之沙特阿拉伯
日期:2015-04-20 22:38:242015亚冠之萨济拖拉机
日期:2015-06-19 16:01:03
发表于 2015-04-30 10:15 |显示全部楼层
多域分隔符,也试着用这个。  指定列,mi:列数不是固定的,$5取不到这个的。所以一直想找方法避开指定列获取
回复 2# Buring__


   

论坛徽章:
1
2015年迎新春徽章
日期:2015-03-04 10:16:53
发表于 2015-04-30 10:17 |显示全部楼层
awk -F'[:,]' '{if($26>50)print $0)}' a.txt

论坛徽章:
9
2015亚冠之大阪钢巴
日期:2015-06-04 11:47:30丑牛
日期:2015-01-22 15:49:26巳蛇
日期:2015-01-22 10:11:18巨蟹座
日期:2014-11-20 10:55:03天蝎座
日期:2014-11-16 22:10:26处女座
日期:2014-11-16 11:01:10申猴
日期:2014-09-19 11:12:37双鱼座
日期:2014-07-25 10:09:54程序设计版块每日发帖之星
日期:2015-08-24 06:20:00
发表于 2015-04-30 10:45 |显示全部楼层
回复 3# prcardin


    试试这样
  1. awk '/mi/&&gensub(/.+mi:([0-9]+),.*/,"\\1","g")+0>50' urfile
复制代码

论坛徽章:
23
15-16赛季CBA联赛之吉林
日期:2017-12-21 16:39:27白羊座
日期:2014-10-27 11:14:37申猴
日期:2014-10-23 08:36:23金牛座
日期:2014-09-30 08:26:49午马
日期:2014-09-29 09:40:16射手座
日期:2014-11-25 08:56:112015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:49:0315-16赛季CBA联赛之山东
日期:2017-12-21 16:39:1915-16赛季CBA联赛之广东
日期:2016-01-19 13:33:372015亚冠之山东鲁能
日期:2015-10-13 09:39:062015亚冠之西悉尼流浪者
日期:2015-09-21 08:27:57
发表于 2015-04-30 10:51 |显示全部楼层
回复 1# prcardin
  1. grep -E 'mi:([0-9]{3,}|[5-9][0-9])'
复制代码

论坛徽章:
8
戌狗
日期:2013-10-12 11:37:19双子座
日期:2014-05-06 14:40:39巨蟹座
日期:2014-06-14 09:22:18戌狗
日期:2014-09-18 16:05:44巨蟹座
日期:2014-12-27 16:37:26酉鸡
日期:2015-01-20 18:39:022015年亚洲杯之沙特阿拉伯
日期:2015-04-20 22:38:242015亚冠之萨济拖拉机
日期:2015-06-19 16:01:03
发表于 2015-04-30 11:03 |显示全部楼层
可以的,谢谢指教。想用awk处理,没想到这种思路
回复 5# Buring__


   

论坛徽章:
8
戌狗
日期:2013-10-12 11:37:19双子座
日期:2014-05-06 14:40:39巨蟹座
日期:2014-06-14 09:22:18戌狗
日期:2014-09-18 16:05:44巨蟹座
日期:2014-12-27 16:37:26酉鸡
日期:2015-01-20 18:39:022015年亚洲杯之沙特阿拉伯
日期:2015-04-20 22:38:242015亚冠之萨济拖拉机
日期:2015-06-19 16:01:03
发表于 2015-04-30 11:04 |显示全部楼层
一语惊醒梦中人哈,还可以继续用grep。困在了awk,又没找到好的思路。谢谢指教
回复 6# ly5066113


   

论坛徽章:
8
戌狗
日期:2013-10-12 11:37:19双子座
日期:2014-05-06 14:40:39巨蟹座
日期:2014-06-14 09:22:18戌狗
日期:2014-09-18 16:05:44巨蟹座
日期:2014-12-27 16:37:26酉鸡
日期:2015-01-20 18:39:022015年亚洲杯之沙特阿拉伯
日期:2015-04-20 22:38:242015亚冠之萨济拖拉机
日期:2015-06-19 16:01:03
发表于 2015-04-30 11:06 |显示全部楼层
谢谢哈,因为数据格式没规范,所以指定列获取有问题。
回复 4# sky_eminem


   

论坛徽章:
1
2015年迎新春徽章
日期:2015-03-04 10:16:53
发表于 2015-04-30 11:08 |显示全部楼层
是个不错的方法回复 6# ly5066113


   
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP