我正在尝试制作一个shell脚本,它将以下列方式组合两个csv文件:
我有两个csv文件,f1.csv和f2.csv. f1.csv的格式是:
startId, endId, roomNum
f2.csv的格式如下:
startId, endId, teacherId
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] 举报,一经查实,本站将立刻删除。