【发布时间】:2017-03-15 08:47:06
【问题描述】:
我知道(请参阅here)如果每个文件都包含一个列,您可以使用paste 将多个文件组合成一个.csv 文件
即paste -d "," column1.dat column2.dat column3.dat ... > myDat.csv 将导致
myDat.csv
column1, column2, column3, ...
c1-1, c2-1, c3-1, ...
c1-2, c2-2, c3-2, ...
... ... ...
(没有标签。只是插入它们以使其更具可读性)
如果我有多个测量值怎么办?
例如
file1.dat 的格式为<xvalue> <y1value>
file2.dat 的格式为 <xvalue> <y2avlue>
file3.dat 的格式为 <xvalue> <uvalue> <vvalue>
我最终想要一个类似 csv 的文件
<xvalue>, <y1value>, <y2value>, <empty column>, <uvalue>, <vvalue>
?
我现在如何合并文件?
编辑
请注意,虽然每个文件都已排序(或者如果没有排序,也可以排序),但它们不一定在同一行包含相同的 xvalue。
如果一个文件不具有另一个文件所具有的 xvalue,则其对应的列条目应为空白。
(实际上,我认为删除并非所有文件中都存在的 xvalue 的行也应该有效。)
【问题讨论】:
-
每个文件都排序了吗?是否会发生 file2.dat 包含不在 file1.dat 中的
xvalue或相反的情况? -
@andlrc 对已排序是肯定的(如果不是,在合并文件之前对它们进行排序应该不会太难太)。不幸的是,对
xvalue的分歧也是肯定的,
标签: bash csv text data-manipulation