首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >匹配不同csv文件的列,在列值不同长度时不能工作。

匹配不同csv文件的列,在列值不同长度时不能工作。
EN

Unix & Linux用户
提问于 2018-04-16 20:07:43
回答 1查看 299关注 0票数 0

我正在匹配一个大csv文件和一个小csv文件之间的3列,并将它们写入输出文件。这里有很多问题是有帮助的,但我无法找到我遇到的具体问题的答案。当列条目较短时,就找不到匹配项。

我的解决方案是基于这里的解决方案:比较不同文件的两列,如果匹配则打印

匹配的列应该是small1 == large120002、small2 == large120003、small3 == large120004。

我想要的是..。

代码语言:javascript
运行
复制
awk -F, 'NR==FNR{c[$1,$2,$3]++;next};c[$120002,$120003,$120004] > 0' small.csv large.csv > output.csv

这挺管用的。这不包括large120002长度小于9个字符的int行。(到目前为止,large120002的值是7-9个字符长)。

以前遇到过这个问题吗?如果可能的话,我想坚持使用awk解决方案。

EN

回答 1

Unix & Linux用户

回答已采纳

发布于 2018-04-16 20:23:35

结果发现这是一个抛出问题,所以我在列中添加了0,以确保这两个列都被awk处理得相同。

在以下帮助下:https://stackoverflow.com/questions/5808971/casting-to-int-in-awk

这个结了..。

代码语言:javascript
运行
复制
awk -F, 'NR==FNR{c[$1+0,$2,$3]++;next};c[$120002+0,$120003,$120004] > 0' small.csv large.csv > output.csv
票数 1
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/438192

复制
相关文章

相似问题

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