微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

linux – 如何使用shell脚本加入2个csv文件?

我正在尝试制作一个shell脚本,它将以下列方式组合两个csv文件

我有两个csv文件,f1.csv和f2.csv. f1.csv的格式是:

startId, endId, roomNum

f2.csv的格式如下:

startId, endId, teacherId 

我想用这种格式将这两个组合成一个csv文件

startId, endId, roomNum, teacherId. 

使用在Linux下运行的shell脚本实现此目的的最佳方法是什么?

解决方法:

尝试:

join -t, -1 1 -2 1 -o 1.2 1.3 1.4 2.4 <(awk -F, '{print $1":"$2","$0}' f1.csv | sort) <(awk -F, '{print $1":"$2","$0}' f2.csv | sort)

这个怎么运作:

1)我首先通过将startId和endId连接到两个文件的startId:endId来创建复合键列.

awk -F, '{print $1":"$2","$0}' f1.csv
awk -F, '{print $1":"$2","$0}' f2.csv

2)我对两个输出进行排序:

awk -F, '{print $1":"$2","$0}' f1.csv | sort 
awk -F, '{print $1":"$2","$0}' f2.csv | sort 

3)然后我使用join命令连接我的复合键(在第一列中)并输出我需要的列.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐