Rno*_*oob 3 unix linux csv awk
我有 ~500 个 CSV 文件,每个文件有 5000 行和 1000 列 (~20Mb)。我想按列附加它们并保存为大型 CSV 文件。
之前的一篇文章部分回答了这个问题。 awk 按列合并多个 csv 文件,不匹配
但是有没有一种方法可以做到这一点而不必写出每个文件名?我的文件按顺序命名(例如,X1.csv、X2.csv、X3.csv、...、X500.csv),如果有帮助的话。
举个例子,假设有三个这样的文件:
$ cat X1.csv
A,B
A,B
A,B
$ cat X2.csv
C
C
C
$ cat X3.csv
D
D
D
Run Code Online (Sandbox Code Playgroud)
我们希望以逗号分隔的格式逐行合并它们,而不命名每个文件:
$ paste -d, X{1..3}.csv
A,B,C,D
A,B,C,D
A,B,C,D
Run Code Online (Sandbox Code Playgroud)
-d,告诉paste合并文件时使用逗号作为分隔符。在 下bash,表达式X{1..3}.csv扩展为按数字顺序排列的文件序列。
如果您有 500 个这样的文件,则命令将是:
paste -d, X{1..500}.csv
Run Code Online (Sandbox Code Playgroud)
要将输出保存到文件:
paste -d, X{1..500}.csv >merged.csv
Run Code Online (Sandbox Code Playgroud)