如何使用 shell 脚本连接 2 个 csv 文件?

2024-03-25

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

我有两个 csv 文件:f1.csv 和 f2.csv。 f1.csv的格式为:

startId, endId, roomNum

f2.csv 的格式如下:

startId, endId, teacherId 

我想将这两个文件合并成一个 csv 文件,格式如下:

startId, endId, roomNum, teacherId. 

使用在 Linux 下运行的 shell 脚本来完成此任务的最佳方法是什么?


Try:

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命令加入我的复合键(在第一列中)并仅输出我需要的列。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用 shell 脚本连接 2 个 csv 文件? 的相关文章

随机推荐