gpt4 book ai didi

linux - Bash脚本通过相似的字段加入两个csv文件并输出到第三个字段

转载 作者:太空宇宙 更新时间:2023-11-04 11:54:13 26 4
gpt4 key购买 nike

我有 2 个 csv 文件。 file1.csv 和 file2.csv 具有以下字段名称

文件 1.csv:user_id, 邮箱

文件 2.csv:user_id, first_name, second_name

我创建了一个 bash 脚本来合并两个 csv 文件:

#!/bin/bash

#Script to merge two csv files based on user_id


join --header -t, <(sort -t, -k1 file_a.csv) <(sort -t, -k1 file_b.csv) > file3.csv

唯一的问题是输出将列名 user_id、email、first_name、last_name 从底部算起 3 行与数据混合在一起。任何人都知道我应该如何更正此问题以使字段名称回到顶部?

最佳答案

您的排序混淆了 header 和数据,很遗憾,排序没有忽略 header 选项。 awk 派上用场了!

先定义一个函数

$ function sorth() { awk 'NR==1; NR>1{print | "sort"}' "$1"; }

现在你可以

$ join --header -t, <(sorth file1) <(sorth file2)

N.B. 我认为使用 -k1 排序不会在此处添加任何值,但在您的语言环境中可能有所不同。如果是这样,请在 awk 脚本中添加选项。

关于linux - Bash脚本通过相似的字段加入两个csv文件并输出到第三个字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54964228/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com