【问题标题】:merge two csv files, command wont print first line合并两个 csv 文件,命令不会打印第一行
【发布时间】:2016-02-16 23:56:43
【问题描述】:

我有两个 csv 文件和一个合并它们的命令,但它不会打印第一行。

文件1.csv

1003085,1
1003144,2
1003149,2
1003208,1
101203,1

文件2.csv

131567,489.564273848
2759,489.564273848
33630,58.5245463474
554915,63.4537671111
1003085,74.6
1003144,20.365
1003149,486.39431

想要的输出.csv

1003085,1,74.6
1003144,2,20.365
1003149,2,486.39431
1003208,1
101203,1

我正在使用的命令:

awk -F, -v OFS="," 'NR==FNR&&NR>1{a[$1]=$2 FS $3;next} FNR>1{printf "%s%s\n",$0,($1 in a?FS a[$1]:"")}' file2.csv file1.csv > out.csv

【问题讨论】:

    标签: csv awk merge


    【解决方案1】:

    NR>1 表示“记录数”大于 (>) 1. 删除它和 FNR>1(当前文件数(记录)),您应该没问题。

    如果您继承了此代码,它可能旨在消除打印标题行。

    IHTH

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-06-11
      • 2017-04-24
      • 2015-01-20
      • 2021-12-23
      • 2022-01-13
      • 1970-01-01
      • 2016-06-20
      • 1970-01-01
      相关资源
      最近更新 更多