【问题标题】:Linux: how to concatenate CSV files in an order and only keep the header of the first file to be concatenated?Linux:如何按顺序连接 CSV 文件,并且只保留要连接的第一个文件的标题?
【发布时间】:2016-08-22 16:04:44
【问题描述】:

我需要将一些名称末尾带有数字的 csv 文件连接为:

file1.csv, file2.csv, ..., file15.csv

这些文件有相同的标题,我只想保留第一个文件的标题。

看了很多帖子后,我找到了一种连接文件并保留标题的方法,但是没有保留连接文件的顺序:

awk 'FNR==1 && NR!=1{next;}{print}' file$*.csv > file.csv

【问题讨论】:

    标签: linux csv header concatenation


    【解决方案1】:

    错误的顺序是因为通配符是按字典顺序而不是数字顺序展开的。您可以使用范围表达式而不是通配符来获取数字顺序。

    awk 'FNR==1 && NR!=1{next;}{print}' file{1..15}.csv > file.csv
    

    或者你可以改变你的命名风格,给它们前导零,file01.csvfile02.csv,等等。

    有关其他技术,另请参阅 glob with numeric order

    【讨论】:

    • 完美。谢谢! :)
    猜你喜欢
    • 1970-01-01
    • 2013-10-23
    • 2015-09-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-18
    • 1970-01-01
    相关资源
    最近更新 更多