Linux:如何按顺序连接 CSV 文件并且只保留要连接的第一个文件的标题?

标签 linux csv header concatenation

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

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

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

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

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

最佳答案

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

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

或者您可以更改您的命名风格,为它们提供前导零,file01.csvfile02.csv 等。

另见 glob with numeric order用于其他技术。

关于Linux:如何按顺序连接 CSV 文件并且只保留要连接的第一个文件的标题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39084068/

相关文章:

c++ - 如何解决 C++ 错误 : Redefinition of 'class'

php - 限制文件可以下载的次数

C const 全局内存段错误(在存在的地址上)

javascript - d3访问分组条形图中的嵌套数据

ruby - 字符串无法写入 CSV 文件 Ruby

Python - 计算csv文件中每一列的平均值

C 文件看不到包含文件中声明的变量

linux - 在linode上设置开发服务器

linux - 重命名与目录同名的文件 - bash 脚本

php - Codeigniter 一次加载页眉和页脚