免费注册 查看新帖 |

Chinaunix

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

两个文件找相同列的问题请教 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-01-07 16:14 |只看该作者 |倒序浏览
file1 内容:
1138084  3
5794387  6
6923223  9
10147115  358
1233956  4
7242205  2
2355796  11
2805812  65
4037844  1
1365803  12
10035352  20
9969987  7
766488  3
9165218  4
3133252  1
9410558  1
9945892  6
10039426  1
4659120  1
7749252  3
8217246  5
10028779  1
2143441  42


file2内容:
9338416  1315367040.html  1
2281696  1289879142.html  5
1937318  1266083162.html  1
9437938  1243648065.html  10
598306  1243252914.html  24
5971084  1236910303.html  5
6729845  1254573013.html  7
8996380  1282770473.html  2
9958467  1342677707.html  51
9102622  1221152143.html  3
5486364  1295726140.html  11
9948443  1255976755.html  8
655152  1470197280.html  7
1702488  1052027837.html  45
767152  1271046804.html  2
8921315  1341071030.html  7
4050680  1244862560.html  3
6452448  1222633361.html  9
8109534  1322653843.html  5
6114452  1080810812.html  17
818015  1271310102.html  28
9534599  1325289144.html  1
6539010  1279769801.html  1
7042151  1264489484.html  2
7790211  1296985215.html  13
9829322  1343166407.html  11
9141136  1276311044.html  698
8342952  1337043133.html  3
516451  1414710447.html  9
1384872  1279892803.html  3
9126657  1236192645.html  9
9063482  1341805721.html  3
3565256  1222239743.html  148
3046840  1291517655.html  1
8918169  1268623727.html  18
1365220  1272213987.html  5
4239105  1237755404.html  9


问题:
我想将文件2中第一列的内容和文件1中第一列相同的行打印出来,格式按照文件1的格式打印.
我该怎么做呢?

论坛徽章:
5
2015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:50:282015年亚洲杯之朝鲜
日期:2015-03-13 22:47:33IT运维版块每日发帖之星
日期:2016-01-09 06:20:00IT运维版块每周发帖之星
日期:2016-03-07 16:27:44
2 [报告]
发表于 2008-01-07 16:19 |只看该作者
try
join file1 file2

or

  1. $ grep -Ff <(cut -d " " -f 1 file2) file1
复制代码

[ 本帖最后由 blackold 于 2008-1-7 17:38 编辑 ]

论坛徽章:
0
3 [报告]
发表于 2008-01-07 20:00 |只看该作者

  1. awk 'NR==FNR{a[$1]=1}NR!=FNR&&($1 in a){print $1" "$3}' 文件1 文件2
复制代码


解释:在读取  文件1的时候,把第一列保存在数组中
在读取 文件2的时候,检查第一列是否在数组中,如果在,就打印第一列和第三列的内容。

论坛徽章:
0
4 [报告]
发表于 2008-01-08 00:20 |只看该作者
实施join命令

论坛徽章:
0
5 [报告]
发表于 2008-01-08 10:38 |只看该作者
awk 'NR==FNR{a[$1]++;}NR>FNR&&a[$1]' 1.txt 2.txt

论坛徽章:
0
6 [报告]
发表于 2008-01-08 10:54 |只看该作者
谢谢大家
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP