免费注册 查看新帖 |

Chinaunix

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

[文本处理] 匹配文件 [复制链接]

论坛徽章:
7
卯兔
日期:2013-10-24 22:27:29天秤座
日期:2013-11-06 17:30:47午马
日期:2015-01-16 10:16:252015年亚洲杯之乌兹别克斯坦
日期:2015-04-02 14:49:302015年亚洲杯之韩国
日期:2015-04-22 14:28:03青铜圣斗士
日期:2015-11-21 00:06:2915-16赛季CBA联赛之天津
日期:2016-02-29 16:26:43
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2014-06-27 15:54 |只看该作者 |倒序浏览
文件A
2列

20120121 aslkdopsak123
20131204 okpdsokvfdsvdv
20131124 askdpsdjcsjdpc

文件b 4列

20131121 aslkdopsak123  apple   00163e6e8b30
20131204 okpdsokvfdsvdv  huawei   0gf0163e6e8b31
20140121 dskdfvodpvpfd   htc     fdgnfdngfdgnfd

a 文件2列和b文件的前2列相等就输出B文件的的4 列

结果文件

20131121 aslkdopsak123  apple   00163e6e8b30
20131204 okpdsokvfdsvdv  huawei   0gf0163e6e8b31

论坛徽章:
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
2 [报告]
发表于 2014-06-27 15:58 |只看该作者
grep -f?{:2_172:}

论坛徽章:
769
金牛座
日期:2014-02-26 17:49:58水瓶座
日期:2014-02-26 18:10:15白羊座
日期:2014-04-15 19:29:52寅虎
日期:2014-04-17 19:43:21酉鸡
日期:2014-04-19 21:24:10子鼠
日期:2014-04-22 13:55:24卯兔
日期:2014-04-22 14:20:58亥猪
日期:2014-04-22 16:13:09狮子座
日期:2014-05-05 22:31:17摩羯座
日期:2014-05-06 10:32:53处女座
日期:2014-05-12 09:23:11子鼠
日期:2014-05-21 18:21:27
3 [报告]
发表于 2014-06-27 16:04 |只看该作者
回复 1# noshell
楼主的数据和结果匹配不上。。。
20120121 aslkdopsak123 =>20131121
20131204 okpdsokvfdsvdv
20131124 askdpsdjcsjdpc

   

论坛徽章:
769
金牛座
日期:2014-02-26 17:49:58水瓶座
日期:2014-02-26 18:10:15白羊座
日期:2014-04-15 19:29:52寅虎
日期:2014-04-17 19:43:21酉鸡
日期:2014-04-19 21:24:10子鼠
日期:2014-04-22 13:55:24卯兔
日期:2014-04-22 14:20:58亥猪
日期:2014-04-22 16:13:09狮子座
日期:2014-05-05 22:31:17摩羯座
日期:2014-05-06 10:32:53处女座
日期:2014-05-12 09:23:11子鼠
日期:2014-05-21 18:21:27
4 [报告]
发表于 2014-06-27 16:05 |只看该作者
回复 1# noshell
  1. [masonzhu@rat122 zzz]$ awk 'NR==FNR{a[$1,$2];next} ($1,$2) in a' a b
  2. 20131121 aslkdopsak123  apple   00163e6e8b30
  3. 20131204 okpdsokvfdsvdv  huawei   0gf0163e6e8b31
  4. [masonzhu@rat122 zzz]$ grep -f a b
  5. 20131121 aslkdopsak123  apple   00163e6e8b30
  6. 20131204 okpdsokvfdsvdv  huawei   0gf0163e6e8b31
复制代码

论坛徽章:
7
亥猪
日期:2013-10-10 17:00:29辰龙
日期:2013-10-12 16:23:19卯兔
日期:2013-11-18 17:01:27金牛座
日期:2014-09-09 10:17:052015七夕节徽章
日期:2015-08-21 11:06:172015亚冠之柏太阳神
日期:2015-09-25 13:56:42数据库技术版块每日发帖之星
日期:2016-08-06 06:20:00
5 [报告]
发表于 2014-06-27 16:13 |只看该作者
  1. awk 'NR==FNR{a[$1,$2]=1;next}a[$1,$2]' a b
复制代码

论坛徽章:
33
ChinaUnix元老
日期:2015-02-02 08:55:39CU十四周年纪念徽章
日期:2019-08-20 08:30:3720周年集字徽章-周	
日期:2020-10-28 14:13:3020周年集字徽章-20	
日期:2020-10-28 14:04:3019周年集字徽章-CU
日期:2019-09-08 23:26:2519周年集字徽章-19
日期:2019-08-27 13:31:262016科比退役纪念章
日期:2022-04-24 14:33:24
6 [报告]
发表于 2014-06-27 16:32 |只看该作者
  1. grep -Ff a b
复制代码

论坛徽章:
1
摩羯座
日期:2014-11-14 16:48:17
7 [报告]
发表于 2014-06-29 21:47 |只看该作者
回复 6# Shell_HAT
lz,没有明白你所写的这条命令的意思,那能否解释下处理逻辑?我查看了下grep 这个命令的这两个参数,理解如下:以a文件为样例,从b文件中查找和a文件中一一对应的行,不是是否是这样?


   

论坛徽章:
33
ChinaUnix元老
日期:2015-02-02 08:55:39CU十四周年纪念徽章
日期:2019-08-20 08:30:3720周年集字徽章-周	
日期:2020-10-28 14:13:3020周年集字徽章-20	
日期:2020-10-28 14:04:3019周年集字徽章-CU
日期:2019-09-08 23:26:2519周年集字徽章-19
日期:2019-08-27 13:31:262016科比退役纪念章
日期:2022-04-24 14:33:24
8 [报告]
发表于 2014-06-30 08:03 |只看该作者
回复 7# fantingftt123


    是的

论坛徽章:
0
9 [报告]
发表于 2014-06-30 09:46 |只看该作者
本帖最后由 zerostudy 于 2014-06-30 11:36 编辑

回复 5# li0924




awk 'NR==FNR{a[$1,$2]=1;next}a[$1,$2]' a b


谁能解析下这条语句?



==>
了解了:
next:表示处理完a文件后,后面的{}才执行,这个{}内的表示b文件的字段。测试语句:
awk 'NR==FNR{a[$1,$2]=1;print $1,$2;next;}{print $1,$2"---"$3,$4}' a b
nr=fnr表示第一个文件 /parthon/{action}

}a[$1,$2] 这里面的$1,$2 和a文件的相等,那么他的值就是1,1 即=>1{print}=>a b两个文件前面二个字段相等的就打印出来。

论坛徽章:
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
10 [报告]
发表于 2014-06-30 10:29 |只看该作者
grep -Ff 轻轻松松做出来结果
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP