首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >基于name字段连接两个csv文件

基于name字段连接两个csv文件
EN

Stack Overflow用户
提问于 2013-06-06 12:05:27
回答 1查看 184关注 0票数 0

我有两张有id和name的桌子。我想根据name字段和输出id和id加入它们。File1:

id,姓名 a0N3000000A0JNaEAN,瓜达瓦尔 a0Na000000G8CCfEAN,本特利之家 a0Na000000EQVg6EAH,阿尔卑斯酒店度假村 a0N30000007LwcaEAC,库姆酒店

File2:

id,姓名 a0BQ00000013OeSMAU,瓜达瓦尔 a0BQ00000013OeBMAU,本特利之家 a0BQ00000013OeVMAU,阿尔卑斯酒店度假村 a0BQ0000001xlQoMAI,库姆酒店

我希望看到的是:

id.1,id.2 a0N3000000A0JNaEAN,a0BQ00000013OeSMAU a0Na000000G8CCfEAN,a0BQ00000013OeBMAU a0Na000000EQVg6EAH,a0BQ00000013OeVMAU a0N30000007LwcaEAC,a0BQ0000001xlQoMAI

我试着写些东西,但最接近的是:

加入-t,-a1 -a2 -1 2 -2 2 -o '0,1.2‘<(sort sandees.1.csv) <(排序prodees.1.csv)

把名字打印出来。为了记录在案,我使用的是OSX10.8。我已经看到,不同的OSes之间的连接行为可能有所不同。谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-06-06 12:50:44

要做的第一件事是将输入文件作为文件;在此之后,您可以使用更高级的语法。

下一步是按照join所要求的方式进行排序,即对第二个字段上的每个文件进行排序,而不是第一个字段。你需要使用:

代码语言:javascript
运行
复制
sort -t, -k2 sandees1.csv >sandees1_sorted.csv
sort -t, -k2 prodees1.csv >prodees1_sorted.csv

您的输出格式,-o指定键加上第一个文件的第二个字段。你说你想要每个文件的第一个字段。

代码语言:javascript
运行
复制
join -t, -a1 -a2 -1 2 -2 2 -o '1.1,2.1' sandees1_sorted.csv prodees1_sorted.csv 

会产生预期的结果。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16961641

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档