合并/加入两个表快速linux命令行
发布时间:2020-12-14 01:22:40 所属栏目:Linux 来源:网络整理
导读:假设我有两个相对较大的制表符分隔文件file1.txt,file2.txt. file1.txtidtcitytcarttypetmodelfile2.txt idtnametrating 让我们假设file1.txt有2000个唯一ID,因此有2000个唯一行,而file2.txt只有1000个唯一行,因此有1000个唯一ID.有没有办法合并这两个
假设我有两个相对较大的制表符分隔文件file1.txt,file2.txt.
file1.txt idtcitytcarttypetmodel file2.txt idtnametrating 让我们假设file1.txt有2000个唯一ID,因此有2000个唯一行,而file2.txt只有1000个唯一行,因此有1000个唯一ID.有没有办法合并这两个表? 情况1.通过file1.txt中的id合并它们,其中当file2.txt中没有id时,将填写NAs. 案例2.在file2.txt中通过id合并它们,其中只有file2.txt中的id将打印出file1.txt和file2.txt中的字段. 注意:合并的新文件也应该是制表符分隔的文件,也带有头文件. 谢谢! 解决方法join -j 1 <(sort file1.txt) <(sort file2.txt) 您的“案例2”是否只使用标准的unix工具.当然,如果文件已排序,您可以删除排序. 如果您包含标题,则可能依赖于数字ID来将连接标题排序到顶部: join -j 1 <(sort file1.txt) <(sort file2.txt) | sort -n 同 > file1.txt id city car type model 1 york subaru impreza king 2 kampala toyota corolla sissy 3 luzern chrysler gravity falcon > file2.txt id name rating 3 zanzini PG 2 tara X >输出: id city car type model name rating 2 kampala toyota corolla sissy tara X 3 luzern chrysler gravity falcon zanzini PG PS要保留TAB分隔符,请传递-t选项: join -t' ' ... 在SO上显示“包含TAB字符”很难.用^ VTAB键入它(例如在bash中) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |